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

C++可执行文件运行后直接关闭且不显示计算结果该如何解决?

问题背景

我们需要编写一段C++代码,功能为接收用户输入的数值后计算其平方值并输出,但运行程序时,程序接收输入后就直接结束,完全不显示计算得到的乘积。

问题代码

#include<iostream>
using namespace std;
int main()
{
    double dValue1, product;
    cout<<"Please input your daily budget.\n";
    cin>>dValue1;
    product=dValue1*dValue1;
    cout<<product;
    cin.get();
    return 0;
}
根因分析

cin读取数值类型数据时,仅会提取输入流中匹配的数字内容,用户输入完成后按下的换行符会残留在输入缓冲区中。后续执行cin.get()时,会直接读取到缓冲区残留的换行符,不会触发等待用户手动输入的逻辑,程序直接执行完成退出,导致窗口一闪而过无法看到输出结果。

解决方案
  • 临时快速修复:引入<stdio.h>头文件后连续调用两次getchar(),第一次读取残留换行符,第二次等待用户输入,即可停留窗口查看输出内容,适合临时调试快速解决问题。
  • 通用规范修复:在调用cin.get()前先清空输入缓冲区残留内容,代码兼容性更强,修改后的示例如下:
#include<iostream>
#include <limits>
using namespace std;
int main()
{
    double dValue1, product;
    cout<<"Please input your daily budget.\n";
    cin>>dValue1;
    product=dValue1*dValue1;
    cout<<product;
    // 清空输入缓冲区所有残留字符,直到匹配到换行符为止
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    cin.get();
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:15:03