Есть ли способ получить 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

Если вы хотите использовать десятичные значения, у вас есть два варианта:

  1. Вставить в char

    auto ch = static_cast<char>(97);
    
  2. Пользовательские литералы

    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};