C-language

구조체와 파일입출력을 활용한 예제

전자둥이 2021. 1. 23. 16:30
반응형

안녕하세요 이번에는 구조체와 파일 입출력을 활용한 간단한 예제를 살펴보려고 합니다.

 

test.txt 파일내용입니다.

 

3

김진수 22

유재석 40

조은별 25

 

 

실행 코드입니다!

 

typedef struct {

    char name [20];

    int age;

} people;

 

int main(void){

    int n, sum = 0;

    FILE *fp;

    fp = fopen("test.txt", "r");

    fscanf(fp, "%d", &n);

    people *a = (people*)malloc(sizeof(people) * n);

    for (int i = 0; i < n ; i++){

        fscanf(fp, "%s %d", &((a + i)->name) , &((a + i) -> age));

        printf("이름: %s 나이: %d", (a + i) -> name, (a + i) -> age );

    }

    for (int i = 0; i < n; i++){

        sum += (a + i) -> age;

    }

    free(a);

    fclose(fp);

    printf("평균 나이:  %.2f\n", (double) sum / n);

    return 0;

}

 

여기서 중요한 점은 동적 할당을 했으면 메모리를 해제해줘야 하는겁니다. 그렇지않으면 메모리 누수가 발생하기 때문입니다.

여기서는 free와 fclose함수가 동적할당 메모리를 해제하는 함수라고 생각하시면 됩니다.

 

앞서서 구조체와 파일 입출력 게시글을 보셨다면 해당 코드를 이해하는데 어렵지 않을 겁니다!

 

이상으로 이번 포스팅 마치도록 하겠습니다! 감사합니다!

반응형

'C-language' 카테고리의 다른 글

[C언어] 배열 array  (0) 2022.07.27
c++ 클래스란 무엇일까  (0) 2021.01.24
c언어 전처리기란 무엇일까요?  (0) 2021.01.24
파일 입출력이란??  (0) 2021.01.23
구조체란 무엇일까  (0) 2021.01.23