首页 >后端开发 >C++ >为什么'getline()”输入数字后返回空字符串?

为什么'getline()”输入数字后返回空字符串?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-23 19:05:14504浏览

Why Does `getline()` Return an Empty String After Number Input?

getline() 输入问题[重复]

当使用 getline() 检索字符串变量 (str) 的用户输入时,它是了解换行符的行为很重要。检索数值后,换行符保留在输入缓冲区中。这会导致后续的 getline() 调用立即返回空字符串。

在提供的代码中,数字输入后面的换行符没有被消耗掉,导致 getline(cin, str) 立即返回空字符串string.

解决方案:

要跳过换行符并确保正确的 getline() 行为,请使用ws(空格)操纵器:

cout << "Enter number:";
cin >> number;
cout << "Enter name:";
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
getline(cin, str);

cin.ignore() 语句读取并丢弃输入缓冲区中直到下一个换行符的所有剩余字符,从而有效地消耗换行符。

以上是为什么'getline()”输入数字后返回空字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn