You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的C++循环会连续运行多次,无法正常提示用户输入?

问题原因
  • std::cin >> inputstr 读取输入时默认以*空白字符(空格、换行符、制表符等)*作为内容分隔符,每次调用只会读取第一个空白字符之前的内容,剩余未读取的内容会留在输入缓冲区中,不会被清空。
  • 当输入包含N个空格分隔的单词时,输入缓冲区中会存在N段可被>>运算符直接读取的非空白内容。第一次循环读取第一个单词后,后续循环调用std::cin >> inputstr会直接从缓冲区读取剩余的单词,不会阻塞等待用户手动输入,因此循环会连续执行N次,对应的Please enter a string:提示也会连续打印N次。
修复方法

如果需要读取包含空格的整行输入,将std::cin >> inputstr替换为std::getline(std::cin, inputstr)即可。getline默认以换行符作为分隔符,可读取整行包含空格的内容。

内容的提问来源于stack exchange,提问作者LTallmadge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:45:03