c++ - 如何在没有剩余单词时使用 >> 停止阅读

标签 c++

我得到了一个文本文件中的单词列表,所有单词都用换行符分隔。使用 fstream 和 >> 读取它们,并且不知道其中的单词量。我如何告诉程序何时停止?我已经测试过了,变量的值与最后读取的单词保持不变。

最佳答案

提取后检查流的状态总是一个好主意。它会告诉您在执行提取时是否有任何问题,或者文件流是否已到达文件结束字符 (EOF)。

后一种情况就是您要处理的情况。您需要做的就是在流处于良好状态时执行提取,这通常通过以下方式完成:

while (in >> str) {
    // ...
}

在流执行提取之后,调用operator bool(),它调用!fail()。使用 while 循环将允许自动执行下一次提取。当流执行了不正确的提取、可能内存不足、遇到 EOF 字符或其他一些用户定义的情况时,它将停止。

关于c++ - 如何在没有剩余单词时使用 >> 停止阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910305/

相关文章:

c++ - 限制子进程访问共享内存和消息队列

c++ - 在 Windows 上设置 Eclipse C++ 编译器而不自动安装或更改系统路径

c++ - 反调试 - 用于 int 3 断点检测的计算函数内存占用

c++ - 从结构 C++ 中初始化二维 vector

c++ - 在 GLUT 中使用非成员方法作为回调

c++ - 是在索引一个新的 map 元素并将读取它的东西分配给它未定义的行为,还是只是未指定的?

c++ - 显示正面和反面被抛出的时间 C++

c++ - 为什么我的包含 header 的 makefile 不起作用?

c++ - 不同的长度排列

C++ switch 语句的用法