调用char以允许用户输入选项时出错

error when calling char to allow user to enter choice

本文关键字:输入 选项 出错 用户 char 许用户 调用      更新时间:2023-10-16

我正在用c++编写一个简单的文本游戏。用户可以选择左房间或右房间。我确实把它设置成一个int语句:输入1代表左,输入2代表右。现在我想让用户输入left表示左房间,right表示右房间。

我用char替换了int,但是我得到了一个错误。

#include <iostream>
using namespace std;
int main() {
    char decision;
    cin >> decision;
    if (decision == left) {
        cout << "went left" << endl;
    }
    return 0;
}

错误:指针与整数比较

  1. char表示单个字符-您需要的是字符串(多个字符)。

  2. 当您实际拥有decision中的用户值时,您需要将其与字符串"left"进行比较,而不仅仅是编译器试图将其解释为符号(如变量名)的left

All in All:

#include <iostream>
#include <string>
using namespace std;
int main() {
    string decision;
    cin >> decision;
    if (decision == "left") {
        cout << "went left" << endl;
    }
    return 0;
}

最简单的方法是使用strcmp:

#include <iostream>

int main()
{
    char decision[50] = "";
    std::cout << "Decision: ";
    std::cin.get(decision, 50, 'n');
    if( !(strcmp(decision, "left")) )
        std::cout << "left";
    else
        if( !(strcmp(decision, "right")) )
            std::cout << "right";
    else
        std::cout << "bad input!" << std::endl;
    std::cout << std::endl;
    return 0;
}
  • 你也不应该区分大小写,因为如果用户输入"Left"而不是"Left",那么它将不起作用