1

我有一些代码,我想使用 cin.eof() 来阻止我的程序读取输入。我正在考虑这样做:

char array[10]
while(!cin.eof())
{
  for(int i = 0; i < 10; i++)
  {
    cin >> array[i];
  }
}

代码还在继续。但是,当我单击“\n”时,会输出我的输出。当我单击 cntrl + d 时,(在 UNIX 终端上)程序再次执行输出,然后继续结束。当我只键入一次 cntrl + d 时,如何让我的程序停止在换行符处读取并打印我的输出?

谢谢。

4

1 回答 1

1

首先,cin.eof()在输入失败之前不做任何有用的事情。你永远不想在循环的顶部使用它。

其次,我不太清楚您要做什么。就像是:

std::string line;
while ( std::getline( std::cin, line ) ) {
    //  ...
}

也许?这会将一行文本读入变量line,直到文件结束;当您遇到文件结尾时,输入将失败,您将退出循环。

于 2012-10-15T08:11:14.997 回答