为什么 std::getline 调用 std::cin 不等待用户输入? [复制]

2023-12-19

有什么充分的理由吗:

std::string input;
std::getline(std::cin, input);

getline 调用不会等待用户输入? cin的状态是不是有点混乱了?


您很可能在读取其他数据后尝试读取字符串,例如int.

考虑输入:

11
is a prime

如果您使用以下代码:

std::cin>>number;
std::getline(std::cin,input)

the getline只会读取 11 之后的换行符,因此您会得到它不等待用户输入的印象。

解决这个问题的方法是使用一个假人getline消耗数字后的新行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 std::getline 调用 std::cin 不等待用户输入? [复制] 的相关文章

随机推荐