调用char以允许用户输入选项时出错
error when calling char to allow user to enter choice
我正在用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;
}
错误:指针与整数比较
-
char
表示单个字符-您需要的是字符串(多个字符)。 -
当您实际拥有
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",那么它将不起作用
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- LLVM | codegen 用于带有命令行选项的程序输入功能
- C++ 我的开关格式中的循环不允许我显示菜单选项或接受输入?
- C++ Catch 是否有类似 NUnit 的测试用例的东西,具有多个参数/输入选项
- 在类中使用枚举为用户输入指定值选项
- C++多个用户输入选项
- 采用过滤后的用户输入,并使其与菜单选项相对应
- 如何从标准输入读取输入,直到按下空格或选项卡
- Boost程序选项允许一组输入值
- 选择多个输入选项
- 如何在c++中为switch语句提供重复输入的选项?
- 用c++编写一个菜单程序,让用户从选项列表中进行选择,如果输入的不是其中一个选项,则重新打印该列表
- 调用char以允许用户输入选项时出错