Namespaces
Variants

std:: feof

From cppreference.net
< cpp ‎ | io ‎ | c
헤더 파일에 정의됨 <cstdio>
int feof ( std:: FILE * stream ) ;

주어진 파일 스트림의 끝에 도달했는지 확인합니다.

목차

매개변수

stream - 확인할 파일 스트림

반환값

스트림의 끝에 도달한 경우 0이 아닌 값, 그렇지 않으면 0 .

참고 사항

이 함수는 가장 최근 I/O 작업에서 보고된 스트림 상태만 보고하며, 관련 데이터 소스를 검사하지 않습니다. 예를 들어, 가장 최근 I/O가 파일의 마지막 바이트를 반환한 std::fgetc 였다면, std::feof 는 0을 반환합니다. 다음 std::fgetc 는 실패하고 스트림 상태를 end-of-file 로 변경합니다. 그때서야 std::feof 가 0이 아닌 값을 반환합니다.

일반적인 사용에서 입력 스트림 처리는 오류 발생 시 중단됩니다; feof std::ferror 는 이후 서로 다른 오류 조건을 구분하는 데 사용됩니다.

예제

#include <cstdio>
#include <cstdlib>
int main()
{
    int is_ok = EXIT_FAILURE;
    FILE* fp = std::fopen("/tmp/test.txt", "w+");
    if (!fp)
    {
        std::perror("File opening failed");
        return is_ok;
    }
    int c; // 참고: EOF를 처리하려면 char가 아닌 int가 필요함
    while ((c = std::fgetc(fp)) != EOF) // 표준 C I/O 파일 읽기 루프
        std::putchar(c);
    if (std::ferror(fp))
        std::puts("I/O error when reading");
    else if (std::feof(fp))
    {
        std::puts("End of file reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    std::fclose(fp);
    return is_ok;
}

출력:

End of file reached successfully

참고 항목

파일 끝에 도달했는지 확인
( std::basic_ios<CharT,Traits> 의 public member function)
오류를 지움
(function)
현재 오류에 해당하는 문자열을 stderr 에 출력
(function)
파일 오류를 확인
(function)