弄清楚`cin.getline()`是否成功

时间:2016-09-19 04:56:40

标签: c++ validation file-io cin getline

这是基本的代码段:

while (true)
{
  cin.getline(str, STRSIZE);
  if (str[0] == '\n') { break; }
}

基本上,当用户输入一个孤独的返回键时,循环假设结束。 当然,这段代码不起作用,因为\n已被刷新,并且永远不会在str中结束,以验证是否输入了孤独的\n。我并不好奇为什么这不起作用;我知道为什么。

  

如何验证输入了孤独的\n,从而退出while-loop

我知道可以做以下事情:

while (cin >> str);

然而:

  • >>一次只收一个字
  • 在我的实际代码中,使用的是for-loop,而不是while-loop

1 个答案:

答案 0 :(得分:3)

如果if ([viewController isBeingDismissed]) { //some stuff } 无法读取某一行,则cin.getline()将处于错误状态。

您可以使用:

cin