C 中的 getline() 和控制台输入
在 C 中, getline() 函数用于从流中提取一行文本,通常但是,当在循环中多次使用时,它可能会出现异常。
问题:
尝试使用 getline() 收集字符串的用户输入以及使用 >> 收集整数和双精度数时,用户无法输入第一个字符串相反,控制台光标会跳转到第二个 getline() 之后的下一个输入提示。
解释:
问题源于 getline() 和 >> 运算符的混合,并读取输入,直到到达 a但是,它会在输入流中留下换行符 (n)。
当 getline() 被调用时>>,它将换行符读取为空字符串,导致不良行为。
解决方案:
string line; getline(cin, line); int value = stoi(line); // Parse the number from the string
以上是为什么使用 `>>` 后 getline() 会在循环中出现意外行为?的详细内容。更多信息请关注PHP中文网其他相关文章!