0
std :: ifstream에서 이상한 동작을 발견했습니다 (아니면 제대로 사용하는 방법이 누락되었습니다).심볼이 ifstream에서 두 번 읽음
1 34 567 3
프로그램 출력 :
#include <iostream>
#include <fstream>
int main(int argc, char** argv) {
std::ifstream file;
file.open(argv[1]);
while(not file.eof()) {
int x;
file >> x;
std::cout << x << std::endl;
}
return 0;
}
는 I는 다음과 같은 공간에 의해 분리 된 번호를 포함하는 파일을 호출
1
34
567
3
3
마지막 I는 다음의 프로그램이 번호는 항상 중복됩니다. 나는 그것이 마지막 숫자를 읽은 후에 EOF에 도달하지 못했기 때문에 그것은 텍스트 파일의 필수 \ n에 도달하고, 다음 파일 >> x는 나에게 마지막으로 읽은 숫자를 다시 준다.
읽을 번호가 더 이상 없다는 것을 올바르게 감지 할 수 있습니까?