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

为何C++中用std::cin读取含空格字符串会出现异常行为?

问题原因解析

这是因为C++里std::cin的>>运算符读取字符串时,默认以**空白字符(空格、换行、制表符等)**作为分隔标记:

  • 当你输入John Doe时,std::cin >> fName只会读取空格前的John,剩下的Doe会留在输入缓冲区中。
  • 接下来执行std::cin >> lName时,程序会直接从缓冲区里读取残留的Doe,不需要等待你手动输入,所以看起来像是跳过了lName的输入步骤。
  • 最终输出时,fName是John,lName是Doe,拼接后就呈现出Hello John Doe的结果,让你误以为程序读取了完整的全名,但实际上是分两次读取了缓冲区里的分段内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:35:23