c++ - 开关总是在猜数字游戏时输出默认值

标签 c++

我正在尝试让一个程序运行,该程序会猜测用户在想哪个数字,但目前它每次都只输出默认的开关 Action 。请告诉我我做错了什么?谢谢!

srand(time(0));
int lowernum = 1;
int highernum = 1000;
int number=rand()%highernum + lowernum;
string letter = "";
int letternum = 0;

cout<<"\nOkay, think of a number between one and 1000 
and I will try to guess it!\n";
cout<<"\nIs your number higher (h), lower (l) 
or exactly (e): " << number << "\n";
cin>>letter;

if (letter == "h")
{
    letternum = 1;
}
else if (letter == "l")
{
    letternum = 2;
}
else if (letter == "e")
{
    letternum = 3;
}

switch(letternum){
case'1': highernum = number; cout<<"\nIs your number higher (h), 
lower (l) or exactly (e): " << number << "\n"; cin>>letter;
    break;
case'2': lowernum = number; cout<<"\nIs your number higher (h), 
lower (l) or exactly (e): " << number << "\n"; cin>>letter;
    break;
case'3': cout<<"\nWahoooooo! I win! :D\n";
    break;
default:cout<<"\nI don't understand what you just typed in.\n";
    break;

}

最佳答案

letternum 是一个整数,您的 switch 语句使用字符(例如“1”),只需从您的 case 表达式中的字符中删除引号:

switch(letternum){
case 1: 

等...

关于c++ - 开关总是在猜数字游戏时输出默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020805/

相关文章:

c++ - 将随机数放入缓冲区以写入文件的有效方法是什么?

c++ - 如何重用相同的顶点着色器来绘制不同的 gl_Position

c++ - Mingw32-w64 GCC 4.9.2 正则表达式错误,还是我不懂 C++?

c++ - 使用 STL find_if() 在对象指针 Vector 中查找特定对象

c++ - C++ 中的 CDBException(错误)处理(VS2010、MFC、Excel/ODBC)

c++ - 变量定义中 "lu"的含义

c++ - 使用序列优雅地初始化静态(成员)数组

c++ - 用C++ 17的功能方式做笛卡尔积

c++ - 如何避免对大浮点或 double 值进行舍入?

c++ - Mac 终端编译错误