为了账号安全,请及时绑定邮箱和手机立即绑定

需要帮助处理getline()

需要帮助处理getline()

C++
慕容森 2019-07-17 18:35:46
需要帮助处理getline()如果在我的程序中,我要求用户输入,而我这样做是有原因的吗?int number;string str;int accountNumber;cout << "Enter number:";cin >> number;cout << "Enter name:";getline(cin, str);cout << "Enter account number:";cin >> accountNumber;为什么在输入第一个数字之后,它会输出“输入名称”,然后在输入getline(CIN,str)行的“str”之前立即输出“输入帐户号”?谢谢!
查看完整描述

3 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

这个getline(cin, str);读取前面读取的数字之后的换行符,并立即返回此“行”。为了避免这种情况,可以跳过空格std::ws在阅读名字之前:

cout << "Enter number:";cin >> number;cout << "Enter name:";ws(cin);getline(cin, str);...

请注意,这也跳过换行符后的前导空格,因此str不会从空格开始,即使用户输入了它们。但在这种情况下,这可能是一个特征,而不是一个bug.


查看完整回答
反对 回复 2019-07-17
?
FFIVE

TA贡献1797条经验 获得超6个赞

试一试

cout << "Enter name:";cin.ignore();getline(cin, str);


查看完整回答
反对 回复 2019-07-17
  • 3 回答
  • 0 关注
  • 424 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信