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