#include <stdio.h>
int main (void)
{
FILE * fp = fopen("fds.txt", "rt");
char str[100];
if(fp==NULL)
printf("에러");
while(!feof(fp))
{
fgets(str, sizeof(str), fp);
printf("%s", str);
}
fclose(fp);
return 0;
}
텍스트파일안에 엔터하나 친다음에 저장했음.
그다음에 위의 코드대로 실행했더니 엔터가 두번 찍혀나옴.
나는 파일안에 [\n][eof] 이렇게 저장되어서
맨처음에 \n 찍고나면 지시자가 eof 가리키니까 while문에 걸려서 팅겨나올줄 알았는데
왜 엔터값이 두번이나 출력되는지가 궁금
---
신기한건 while문을
while(fgets(str, sizeof(str), fp) != NULL)
{
printf("%s", str);
}
이렇게 수정하면 내가 의도한대로 엔터가 한번찍히고 끝남
printf(\"%s\", str); 를 printf(\"[%s]\", str); 로 수정해서 다시 한번 돌려봐