【发布时间】:2011-05-30 19:17:09
【问题描述】:
#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”?谁能帮我解释一下?
【问题讨论】:
-
感谢您指出这一点。我在 TopCoder 上竞争,我通常会导入所有命名空间以节省时间。