Я использовал этот код как часть двухмерной игры, но когда я попытался скомпилировать его, он вернул следующую ошибку:
ошибка C2051: регистр не является постоянным.
Это мой код:
switch(_getch()){
case "w":
dir = UP;
break;
case "a":
dir = LEFT;
break;
case "s":
dir = DOWN;
break;
case "d":
dir = RIGHT;
break;
default:
break;
}
Вы должны использовать литералы символов ('w'
) вместо строковых литералов ("w"
) в случаях переключения:
case 'w':
dir = UP;
break;
"w"
является строковым литералом, который будет распадаться на char const*
указатель. switch
падежи не могут быть ничем иным, как постоянным целым числом, перечислением или классом с одним неявным целым числом или оператором преобразования перечисления. Указатель на символ не из тех.
Других решений пока нет …