我将这段代码用作二维游戏的一部分,但是当我尝试编译它时,它返回了以下错误:
error C2051: case expression not constant.
This is my code:
switch(_getch()){
case "w":
dir = UP;
break;
case "a":
dir = LEFT;
break;
case "s":
dir = DOWN;
break;
case "d":
dir = RIGHT;
break;
default:
break;
}
最佳答案
在 switch cases 中,你应该使用字 rune 字 ('w'
) 而不是字符串文字 ("w"
):
case 'w':
dir = UP;
break;
"w"
是一个字符串文字,它会衰减为一个 char const*
指针。 switch
case 只能是常量整数、枚举或具有单个非显式整数或枚举转换运算符的类。指向 char 的指针不是这些。
关于c++ - C++ 中的 case 表达式返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39935652/