有没有办法检查 ifstream 中是否有任何字符要读取,如果是,我该怎么做。如果您确定这是不可能的,请告诉我。
问问题
7745 次
2 回答
8
要在编辑后获得您要询问的内容,可以使用peek()函数:
给定一个std::ifstream
被调用的f
if (f && f.peek() == EOF)
std::cout << "Nothing left to read\n";
else
std::cout << "There is something to read or the stream is bad\n";
但请记住,这不是一个“更一般”的问题,而是一个不同的问题(也就是说,将此应用于您的原始问题将是一个错误)
于 2013-05-16T21:30:16.000 回答
2
您应该将读取操作置于您的while
条件下:
while(stream >> buffer) {
...
这将一直读取,直到流为空或发生另一个错误。
...但如果您真的想一次读取一个字符,您应该阅读以下内容:Reading a single character from an fstream?
于 2013-05-16T20:33:56.227 回答