我对文件结尾感到困惑
I am confused about End of File
我真的对文件结尾感到困惑。假设我正在运行一个无限循环。在这个循环中,我将一个整数作为输入,然后对其进行处理,直到找到文件结尾。但是我要检查输入是否为文件结尾。我该如何打破这个循环?
我使用Windows,所以对于EOF,我键入CTRL+Z。
#include<iostream>
#include<cstdio>
using namespace std;
int main(void)
{
int n;
while(true)
{
cin >> n;
if(n==EOF)break;
cout << n << endl;
}
return 0;
}
当我运行这段代码并键入CTRL+z时,它只会无休止地打印我给出的最后一个输入。
1)这不是检查文件结尾的方法。您在哪里读到operator>>
将返回EOF值?
查看您是否已尝试读取文件末尾的正确方法是此if(cin.eof())
。但是,永远不要这样做,因为:
2) 你永远不应该检查文件的末尾。相反,您应该检查"最后一次输入操作是否正确?"
像这样:
#include<iostream>
#include<cstdio>
using namespace std;
int main(void)
{
int n;
while(cin >> n)
{
cout << n << endl;
}
return 0;
}
参考:从文本文件读取直到EOF重复最后一行
相关文章:
- 在C++中使用 freopen 时如何检测文件结尾?
- 如何在 的开头<x>和结尾<y>之间更改带有文件输出的字符串的值
- 以 Null 结尾的字符串的"NULL"或" "符号是否存储在文件中?
- 如何在图像位中设置标志以标记音频文件的结尾
- 如何在C++中打开以特定扩展名结尾的文件
- 如何将EOF(文件结尾)放入代码::块中?
- 用 OpenCV 以文件结尾分隔
- 将头文件(.h)放在另一个文件(.h或.cpp)的开头和结尾之间的区别
- 超级强大的API-超级强大的Decoder::decode未为文件结尾返回0
- 处理导致核心转储的文件结尾错误
- 我对文件结尾感到困惑
- 如何检查 ifstream 是否是 C++ 中文件的结尾
- 如何在文件末尾(或结尾之前)读取字符
- C++ lcov 到达了意外的文件结尾
- 如何检测 C++ 中字符串输入的文件结尾
- 意外的文件结尾(可视形式)
- 查找文件流的结尾
- [C++]检查文件结尾
- 如何处理CSV文件中多个可能的文件结尾
- 致命错误C1004:发现意外的文件结尾