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

未输入任何值时cin读取后cout输出0 16的原因咨询

C++未输入值时输出随机值的原因解析

你的代码里的int a;和int b;是未初始化的局部变量。在C++规则里,函数内部的局部变量不会自动被初始化为0或者其他固定值,它们的初始值是内存里遗留的随机垃圾数据。

当你没输入任何值就运行程序时,cin >> a >> b的读取操作会失败,这时候a和b的取值不会被修改,依然保持它们刚创建时的随机垃圾值——你看到的0 16就是这次运行时内存里刚好残留的数值,换个环境或者重新运行,输出结果可能完全不一样。

而输入正常数值时,cin成功读取到了值,会把这些值覆盖到a和b上,所以输出的就是你输入的内容,看起来正常。

如果要避免这种不确定的输出,有两个简单办法:

  • 定义变量时直接初始化,比如写成int a = 0; int b = 0;,这样就算读取失败,也会输出确定的初始值
  • 加个读取状态检查,比如用if (cin >> a >> b)判断读取是否成功,失败时可以提示用户输入错误,或者做其他处理

内容的提问来源于stack exchange,提问作者Khan Zahid Rasheed Raja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:05:55