【问题标题】:Printing random number打印随机数
【发布时间】: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) 中有两个错误。首先,您正在使用赋值运算符。它应该是==。其次,您将charint 进行比较。您需要在1 周围加上单引号。
  • ... 第三,想想你在运行这个程序时点击的每一个 击键:gnu 选择和模型选择之间是否有一个键?有什么键吗?
  • 提醒:一个=用于赋值,两个用于相等:==
  • 所有endls;该流肯定已被刷新。说真的:'\n' 结束一行。你不需要std::endl 做的额外的东西。

标签: c++ helper


【解决方案1】:

这里有几个问题:

if (gun = 1)
    cout << 'test' << endl;

这不是比较; gun 始终被赋值为1,并且if 条件始终为真。比较运算符是==

另外,您正在打印出'test',这就是您得到奇怪数字的原因。您需要打印"test"

还要注意gun 是一个字符,因此您可能需要与字符'1' 进行比较。

另外,避免using namespace std;

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多