C 초보입니다 텍스트 파일 읽고 쓰기 질문입니다
조회수 455회
include
int main(void) { char name[10]; char sex; int age;
FILE *wfp = 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(wfp, "%s %c %d", name, sex, age);
}
FILE *rfp = fopen("friend.txt", "rt");
int ret;
while (1)
{
ret = fscanf(rfp, "%s %c %d", name, &sex, &age);
if (ret == EOF);
break;
printf("%s %c %d\n", name, sex, age);
}
fclose(wfp,rfp);
return 0;
}
왜 항상 마지막 입력값만 세번 출력되는지 궁금합니다
2 답변
-
출력시에 for문안에서 그냥 printf("%s %c %d\n", name, sex, age);하지 말고 fread함수 혹은 fscanf로 fp에서 내용을 읽어야 제값을 얻을수 있습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
if (ret == EOF); break; 이 부분을 if (ret == EOF) break; 로 고치세요.
그리고요 fclose()로 단번에 두개씩이나 닫는것은 처음보는것 같아요. 아마 갈라서 하나씩 하는게 좋을거에요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력