【发布时间】:2020-04-20 23:10:28
【问题描述】:
#include <iostream>
using namespace std;
int main() {
char gun;
char att;
cout << "Guns" << endl;
cout << "[1] AK" << endl;
cout << "[2] MP5" << endl;
cout << "[3] M2" << endl;
cout << "[4] SAR" << endl;
cout << "[5] Tommy" << endl;
cout << "[6] Custom" << endl;
cin >> gun;
cout << "[A] Holosight" << endl;
cout << "[B] Simplesight" << endl;
cout << "[C] Silencer" << endl;
cout << "[D] Muzzel Boost" << endl;
cout << "[E] Muzzel Break" << endl;
cout << "[F] 8x Zoom Scope" << endl;
cout << "[G] 16x Zoom Scope" << endl;
cout << "[H] Lasersight" << endl;
cin >> att;
switch (gun) {
case'1':
if (gun = 1)
cout << 'test' << endl;
else
cout << "Wrong Command" << endl;
break;
}
}
当我运行它并选择 1(代码只构建了一半)时,它会打印“1952805748”。我已尝试添加更多案例,但仍然存在此问题。
谁能帮我解决这个问题。
【问题讨论】:
-
if(gun = 1)中有两个错误。首先,您正在使用赋值运算符。它应该是==。其次,您将char与int进行比较。您需要在1周围加上单引号。 -
... 第三,想想你在运行这个程序时点击的每一个 击键:gnu 选择和模型选择之间是否有一个键?有什么键吗?
-
提醒:一个
=用于赋值,两个用于相等:==。 -
所有
endls;该流肯定已被刷新。说真的:'\n'结束一行。你不需要std::endl做的额外的东西。