씨언어 초보입니다 텍스트파일 읽고 쓰기 관련 질문입니다

generalcho123의 이미지

#include

int main(void)

{

char name[10];

char sex;

int age;

FILE *fp = fopen("friend.txt", "wt");

int i;

for (i = 0; i < 3; i++)

{

printf("enter name, sex, and age in order : ");

scanf("%s %c %d", name, &sex, &age);

getchar();

fprintf(fp, "%s %c %d", name, sex, age);

}

fp = fopen("friend.txt", "rt");

if (fp == NULL) {

printf("파일오픈실패");

}

else {

for (i = 0; i < 3; i++)

printf("%s %c %d\n", name, sex, age);

}

fclose(fp); //스트림의 종료

return 0;

}

왜 항상 마지막 입력값만 세번 출력되는지 궁금합니다

세벌의 이미지

코드 중 아래에 i와 관련된 무엇이 들어가야 될지 생각해 보셔요.

printf("%s %c %d\n", name, sex, age);
익명 사용자의 이미지

똑같은 데 덮어쓰고 있기 때문이지요.

상식적으로, name, sex 및 age를 세 번 입력받아 저장하려면, 각각 저장 공간이 세 배씩 필요하지 않겠습니까?

라스코니의 이미지

파일을 열었으면 파일에서 값을 읽는 과정이 들어가야지요. fread, fscanf로 살펴보세요.