我得到了一个文本文件中的单词列表,所有单词都用换行符分隔。使用 fstream 和 >> 读取它们,并且不知道其中的单词量。我如何告诉程序何时停止?我已经测试过了,变量的值与最后读取的单词保持不变。
最佳答案
提取后检查流的状态总是一个好主意。它会告诉您在执行提取时是否有任何问题,或者文件流是否已到达文件结束字符 (EOF
)。
后一种情况就是您要处理的情况。您需要做的就是在流处于良好状态时执行提取,这通常通过以下方式完成:
while (in >> str) {
// ...
}
在流执行提取之后,调用operator bool()
,它调用!fail()
。使用 while
循环将允许自动执行下一次提取。当流执行了不正确的提取、可能内存不足、遇到 EOF
字符或其他一些用户定义的情况时,它将停止。
关于c++ - 如何在没有剩余单词时使用 >> 停止阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910305/