gpt4 book ai didi

c++ - 判断 `cin.getline()`是否成功

转载 作者:行者123 更新时间:2023-11-28 00:00:20 25 4
gpt4 key购买 nike

这是基本的代码片段:

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

本质上,当用户只输入一个单独的返回键时,循环应该结束。当然,这段代码是行不通的,因为\n被flush了,永远不会在str中结束来验证一个孤独的\n 已输入。我不好奇为什么这不起作用;我知道为什么。

How can you verify that a lonely \n was entered, hence exiting the while-loop?


我知道可以做到以下几点:

while (cin >> str);

但是:

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

最佳答案

如果cin.getline()读取一行失败,cin将处于错误状态。

您可以使用:

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

// Use str
}

关于c++ - 判断 `cin.getline()`是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39565635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com