Par exemple, 'a' a ASCII code 97 et nous pourrions utiliser
char ch = 'a';
ou
char ch = 97;
Avec auto on pourrait écrire
auto ch = 'a';
pour le premier cas, mais comment obtenir la variable char par le code ascii numérique lors de la déduction?
Cela ne fonctionne pas pour moi:
auto ch = '\97';
Vous devez utiliser une valeur octale ou hexadécimale pour la séquence d'échappement
auto ch = '\141';
auto ch2 = '\x61';
Pour plus d'informations https://en.cppreference.com/w/cpp/language/escape
Si vous souhaitez utiliser des valeurs décimales, vous avez deux options:
Cast to char
auto ch = static_cast<char>(97);
Littéraux définis par l'utilisateur
char operator "" _ch(unsigned long num)
{
return static_cast<char>(num);
}
//...
auto ch = 97_ch;
Il n'y a pas d'échappement décimal, mais vous pouvez utiliser hexadécimal: '\x61'
, ou octal, '\141'
.
Si vous avez vraiment besoin de décimales, vous devez lancer; char{97}
.
Il n'y a pas de littéral intégral qui spécifie un char
. Vous devez nommer explicitement le type, par ex.
auto ch = char{97};
Cast un littéral intégral en char
:
auto ch = static_cast<char>(97);