c++ - 当它应该是字符串时输入接受字符?

标签 c++ if-statement

我是 C++ 的新手,正在制作一个简单的文本 RPG,无论如何,场景是我有一个带有选项 1-3 的“欢迎”屏幕,并且有一个简单的 IF 语句来检查它们,这里:

int choice;
std::cout << "--> ";
std::cin  >> choice;

if(choice == 1) {
//..

这很好用,但如果有人输入一个字母作为选择(而不是 1、2 或 3),它将变成“-392493492”或其他东西并使程序崩溃。所以我想出了:

char choice;
std::cout << "--> ";
std::cin  >> choice;

if(choice == 1) {
//..

这工作得很好,但是当我输入一个数字时,它似乎完全跳过了 IF 语句。字符“1”是否与数字 1 相同?

我得到一个编译器错误(ISO-CPP 或其他):

if(choice == "1")

那么我到底怎么才能知道他们输入的 1-3 是否正确!?

最佳答案

1 is an int
'1' is a char
"1" is a char array

我猜您想与 '1' 进行比较。

关于c++ - 当它应该是字符串时输入接受字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2779804/

相关文章:

php - 你如何根据 WooCommerce 属性编写条件 PHP

PowerShell Try/Catch with If 语句

令人困惑的 'if' 语句

c++ - 访问 try-catch block 外的变量

c++ - 找不到文本文件?

Visual Studio Express 2015 中的 C++ 新文件问题

mysql - sql if in insert statement without select

c++ - 赋值(operator =)使容器的迭代器失效

C# 通过引用 C++ ActiveX 控件传递 int 和字符串 : type mismatch

javascript - Jquery Javascript将if语句变成case语句不起作用