【发布时间】:2011-06-15 08:26:34
【问题描述】:
我在获取字符串时遇到问题。 我用
getline(cin,string);
但是有某种错误,当我按下回车键时它会跳过一行,有没有解决这个问题的方法,或者可能是另一个函数来获取带有空格的字符串?
【问题讨论】:
-
显示整个代码,以及您输入的内容以及您的预期
-
跳过一行是什么意思?跳过您输入 oress 的行或下一行?
我在获取字符串时遇到问题。 我用
getline(cin,string);
但是有某种错误,当我按下回车键时它会跳过一行,有没有解决这个问题的方法,或者可能是另一个函数来获取带有空格的字符串?
【问题讨论】:
我的猜测是您在执行 getline() 之前在某处执行 cin >> someVar。
cin >> someVar
不读取完整的行,但在第一个空白字符处停止,并且换行符 \n 保持未使用。这会导致 getline() 中的行跳过
如果是这样的话,
要修复它,您需要在getline() 之前添加一个cin.ignore() 语句以使用>> 流提取器留在输入流中的\n 换行符(或任何其他额外字符)。
【讨论】: