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