Tag: eof

ifstream的eof()如何工作?

#include <iostream> #include <fstream> 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()函数。 假设我的ex.txt的内容是: abc 它总是读取一个额外的字符,并使用eof()读取时显示-1 。 但inf >> c给出了正确的输出是'abc'? 任何人都可以帮我解释一下吗?