>`)? " />
ifstream의 eof() 함수 자세히 알아보기
제공된 코드 조각에 설명된 것처럼 ifstream의 eof() 함수 동작을 이해하는 것은 어려울 수 있습니다.
<사전>
int main() {
std::fstream inf( "ex.txt", std::ios::in ); while( !inf.eof() ) { std::cout << inf.get() << "\n"; } inf.close(); inf.clear(); inf.open( "ex.txt", std::ios::in ); char c; while( inf >> c ) { std::cout << c << "\n"; } return 0;
}
설명을 자세히 살펴보자 제공:
EOF가 실제로 설정되는 경우
eof() 함수는 읽기 작업이 파일 끝을 넘어서 데이터에 액세스하려고 시도하는 경우를 감지합니다.
이러한 동작의 이유 파일 크기 개념이 텍스트만큼 간단하지 않을 수 있는 파이프 및 소켓과 같은 다양한 장치와의 호환성을 보장하는 것입니다. file.
get() 및 >>
코드 조각의 두 루프는 서로 다른 접근 방식을 사용하여 파일 내용을 읽습니다.
이것은 왜 첫 번째 루프는 추가 문자를 읽고 -1을 표시하는 반면 두 번째 루프는 올바른 출력을 제공합니다. 즉, 끝을 넘어 읽기를 시도하기 전에 루프를 종료합니다. file.
-1의 위험 방지
파일 끝을 식별하기 위해 매직 넘버 -1에 의존하지 않으려면 std를 사용하는 것이 좋습니다. :char_traits
위 내용은 `ifstream::eof()`가 `get()` 및 추출 연산자(`>>`)와 다르게 동작하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!