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

VSCode 2022中C++计算器程序运行黑屏问题求助

问题分析与修复方案

核心问题:无限循环导致黑屏

你的代码中while (konec == 0);后面多了一个分号;,这会让while循环的循环体变成空语句,后续的大括号代码块永远不会被执行。程序会一直停在这个无限循环里,所以运行后显示黑屏。

修复步骤

  1. 移除while循环后的分号
    将while (konec == 0); {改为while (konec == 0) {

  2. 修复除法分支的变量错误
    在case4中,你把除法结果赋值给了vysledek2,但输出的是未初始化的vysledek4,需要修正:

    vysledek4 = cislox / cisloy;
    cout << cislox << "/" << cisloy << "=" << vysledek4;
    
  3. 优化多余变量(可选)
    你定义了多个vysledek变量,但其实只用一个就足够,减少冗余:

    double vysledek = 0;
    

    然后在每个case中直接赋值给vysledek即可。

修复后的完整代码

#include <iostream>
using namespace std;

int main() {
    int konec = 0;
    double cislox = 0;
    double cisloy = 0;
    int operace = 0;
    double vysledek = 0;

    while (konec == 0) {
        cout << "Vítejte v kalkulačce Ver. 0.1" << endl;
        cout << "stiskněte 1 pro sčítání, 2 pro odčítání, 3 pro násobení, 4 pro dělení" << endl;
        cin >> operace;
        switch (operace) {
        case 1:
            cout << "Zadejte číslo X" << endl;
            cin >> cislox;
            cout << "Zadejte číslo Y" << endl;
            cin >> cisloy;
            vysledek = cislox + cisloy;
            cout << cislox << "+" << cisloy << "=" << vysledek << endl;
            break;
        case 2:
            cout << "Zadejte číslo X" << endl;
            cin >> cislox;
            cout << "Zadejte číslo Y" << endl;
            cin >> cisloy;
            vysledek = cislox - cisloy;
            cout << cislox << "-" << cisloy << "=" << vysledek << endl;
            break;
        case 3:
            cout << "Zadejte číslo X" << endl;
            cin >> cislox;
            cout << "Zadejte číslo Y" << endl;
            cin >> cisloy;
            vysledek = cislox * cisloy;
            cout << cislox << "*" << cisloy << "=" << vysledek << endl;
            break;
        case 4:
            cout << "Zadejte číslo X" << endl;
            cin >> cislox;
            cout << "Zadejte číslo Y" << endl;
            cin >> cisloy;
            vysledek = cislox / cisloy;
            cout << cislox << "/" << cisloy << "=" << vysledek << endl;
            break;
        }
        cout << "chcete ukoncit program?" << "1 = ANO; 0 = NE" << endl;
        cin >> konec;
    }
    return 0;
}

额外提示

  • 编译运行时,确保VSCode配置了正确的C++编译环境(比如MinGW或MSVC),编译命令没有错误。
  • 可以在输出语句后添加endl刷新缓冲区,避免输出延迟。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:10:31