Есть ли способ получить char путем автоматического вывода типа с использованием десятичного кода ASCII?
Например, "a" имеет ASCII-код 97, и мы могли бы использовать
char ch = 'a';
или же
char ch = 97;
С авто можно писать
auto ch = 'a';
для первого случая, но как получить переменную char с помощью числового кода ascii во время вычета?
Это не работает для меня:
auto ch = '\97';
Ответы
Ответ 1
Вы должны использовать восьмеричное или шестнадцатеричное значение для escape-последовательности
auto ch = '\141';
auto ch2 = '\x61';
Для получения дополнительной информации https://en.cppreference.com/w/cpp/language/escape
Если вы хотите использовать десятичные значения, у вас есть два варианта:
-
Вставить в char
auto ch = static_cast<char>(97);
-
Пользовательские литералы
char operator "" _ch(unsigned long num)
{
return static_cast<char>(num);
}
//...
auto ch = 97_ch;
Ответ 2
Там нет decimal escape, но вы можете использовать шестнадцатеричный: '\x61'
, или восьмеричный, '\141'
.
Если вам действительно нужно десятичное число, вам нужно бросить; char{97}
.
Ответ 3
Не существует интегрального литерала, указывающего char
. Вы должны явно указать тип, например
auto ch = char{97};
Ответ 4
Передача целостного литерала для char
:
auto ch = static_cast<char>(97);