• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

파일읽기에 대해서 질문이 있습니다.

19.03.27 02:27 작성 조회수 115

0

선생님 코드 기반에서

만일 data 파일에

hello world!

hello world2!

이렇게 2줄이 입력되어 있는 상황에서 2줄을 어떻게 한 번에 읽을 수 있나요?

기존 코드에선 마지막 줄 입력을 받지 못하는 것 같습니다.

답변 5

·

답변을 작성해보세요.

0

유영재님의 프로필

유영재

질문자

2019.03.28

감사합니다

0

유영재님의 프로필

유영재

질문자

2019.03.28

감사합니다

0

유영재님의 프로필

유영재

질문자

2019.03.28

감사합니다

0

유영재님의 프로필

유영재

질문자

2019.03.28

감사합니다

0

fgets() API는 주어진 사이즈 내에서 EOF(파일의 끝)이나 newline(n)을 만날때까지 읽습니다. 즉, 한번에 한줄씩 읽는다는 의미가 되겠습니다. 따라서 두 줄이 입력된 파일에 대해 fgets()로 한꺼번에 두 줄을 읽을 수는 없습니다. fread() API를 이용하면 줄 수에 관계없이 한번에 데이터를 사이즈만큼 읽어옵니다. 다만, 두 줄만 있는 경우엔 한꺼번에 두 줄을 읽어올 수 있겠지만, 세 줄 이상이 있는데 두 줄만 읽어올 수는 없습니다. fread() API는 newline에 관계없이 사이즈 만큼 읽어오기 때문입니다. 줄 단위로 읽기 위해서는 fgets()를 반복 호출하는 방법이 좋을 것 같습니다. 도움이 되셨길 바랍니다 :)