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

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

Mary-Kate Olsen
发布: 2024-12-23 19:05:14
原创
476 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板