如何解决getline和cin与条件的不同行为
我有一个连续的while
循环,在该循环中,我会无限期地获取用户输入,直到用户没有输入任何内容(即,按Enter键或遇到EOF为止)( Ctrl + D )。
第一次尝试,我使用getline
函数。
while (true)
{
if (not (std::getline(std::cin,sm)) or sm.empty())
break;
}
它工作正常,在没有输入或EOF的情况下退出循环。
第二次尝试时,我使用标准的cin
:
while (true)
{
if (not (std::cin >> sm) or sm.empty())
break;
}
在这种情况下,它不再按预期工作。当用户按下Enter键时,它不会退出循环,只有在进入EOF时它才会退出。
有什么区别?我在这里想念什么?
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。