使用cin.eof()

问题描述 投票:1回答: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一次时输出我的输出?

谢谢。

c++ cin
1个回答
1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.