VSCode 2022中C++计算器程序运行黑屏问题求助
问题分析与修复方案
核心问题:无限循环导致黑屏
你的代码中while (konec == 0);后面多了一个分号;,这会让while循环的循环体变成空语句,后续的大括号代码块永远不会被执行。程序会一直停在这个无限循环里,所以运行后显示黑屏。
修复步骤
移除while循环后的分号
将while (konec == 0); {改为while (konec == 0) {修复除法分支的变量错误
在case4中,你把除法结果赋值给了vysledek2,但输出的是未初始化的vysledek4,需要修正:vysledek4 = cislox / cisloy; cout << cislox << "/" << cisloy << "=" << vysledek4;优化多余变量(可选)
你定义了多个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
相关产品推荐
相关产品推荐

