작성
·
217
0
선생님 코드 기반에서
만일 data 파일에
hello world!
hello world2!
이렇게 2줄이 입력되어 있는 상황에서 2줄을 어떻게 한 번에 읽을 수 있나요?
기존 코드에선 마지막 줄 입력을 받지 못하는 것 같습니다.
답변 5
0
0
0
0
0
fgets() API는 주어진 사이즈 내에서 EOF(파일의 끝)이나 newline(n)을 만날때까지 읽습니다. 즉, 한번에 한줄씩 읽는다는 의미가 되겠습니다. 따라서 두 줄이 입력된 파일에 대해 fgets()로 한꺼번에 두 줄을 읽을 수는 없습니다. fread() API를 이용하면 줄 수에 관계없이 한번에 데이터를 사이즈만큼 읽어옵니다. 다만, 두 줄만 있는 경우엔 한꺼번에 두 줄을 읽어올 수 있겠지만, 세 줄 이상이 있는데 두 줄만 읽어올 수는 없습니다. fread() API는 newline에 관계없이 사이즈 만큼 읽어오기 때문입니다. 줄 단위로 읽기 위해서는 fgets()를 반복 호출하는 방법이 좋을 것 같습니다. 도움이 되셨길 바랍니다 :)