константы — регистр в с ++ возвращает ошибку

Я использовал этот код как часть двухмерной игры, но когда я попытался скомпилировать его, он вернул следующую ошибку:

ошибка 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;
}

1

Решение

Вы должны использовать литералы символов ('w') вместо строковых литералов ("w") в случаях переключения:

case 'w':
dir = UP;
break;

"w" является строковым литералом, который будет распадаться на char const* указатель. switch падежи не могут быть ничем иным, как постоянным целым числом, перечислением или классом с одним неявным целым числом или оператором преобразования перечисления. Указатель на символ не из тех.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector