我有一些代码,我想使用cin.eof()来阻止我的程序读取输入。我在考虑做:
char array[10]
while(!cin.eof())
{
for(int i = 0; i < 10; i++)
{
cin >> array[i];
}
}
代码还在继续。但是,当我单击'\ n'时,输出我的输出。当我单击cntrl + d时,(在UNIX终端上)程序再次执行输出,然后继续结束。我如何得到它,以便我的程序停止读取换行符并在我输入cntrl + d一次时输出我的输出?
谢谢。
首先,cin.eof()
在输入失败之前没有做任何有用的事情。你永远不想在循环的顶部使用它。
其次,我不清楚你要做什么。就像是:
std::string line;
while ( std::getline( std::cin, line ) ) {
// ...
}
也许?这将读取一行文本到变量line
,直到文件结尾;当您遇到文件结束时,输入将失败,您将离开循环。