我对文件结尾感到很困惑.假设我正在运行无限循环.在这个循环中,我将一个整数作为输入,然后处理它,直到我找到一个文件结束.但是,我是否检查输入是否为文件结尾.我该如何打破循环?
我使用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;
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码并输入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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |