70.4 fputs 함수가 들어가는 이유
, 서 동호님이 작성fgets 함수가 파일을 읽는 방식에 대한 강의자료인데요
hello.txt
Hello, world! Hello, world! Hello, world! Hello, world!
이 상태에서 fgets의 버퍼 크기를 20바이트로 지정한 뒤 파일을 읽으면 딱 버퍼 크기만큼만 읽습니다. 따라서 널 문자를 포함하여 20바이트를 읽으며 실제 문자열은 19바이트입니다.
// 파일 열기, 닫기 생략
char buffer[20];
fgets(buffer, sizeof(buffer), fp); // 버퍼 크기 20바이트
fputs(buffer); // Hello, world! Hello: 널 문자를 포함하여 20바이트를 읽음. 문자열은 19바이트
실행 결과
Hello, world! Hello
여기에서 fputs 함수가 갑자기 왜 들어가는 건지요?
fputs 함수는 fputs(버퍼, 파일포인터); 이런 식으로 문자열을 파일에 쓰는 데 이용된다고 배웠는데요..
fputs(buffer); 이렇게 쓰면 형식에서도 틀리는 것이 아닌가 하는 생각에서 질문합니다
회신: 70.4 fputs 함수가 들어가는 이유
, 도장_ 관리자님이 작성fputs(buffer, stdout);
처럼 써야 올바릅니다. 오탈자 제보 감사합니다.
온라인은 수정했고, 종이책은 중쇄 때 반영됩니다.
감사합니다.