c++ - 有没有办法使用十进制 ASCII 码通过自动类型推断来获取字符?

标签 c++ c++14 c++17

例如 'a' 的 ASCII 码是 97,我们可以使用

char ch = 'a';

char ch = 97;

使用 auto 我们可以写

auto ch = 'a';

第一种情况,但是如何在推演过程中通过数字ASCII码获取char变量?

这对我不起作用:

auto ch = '\97';

最佳答案

转义序列必须使用八进制或十六进制值

auto ch  = '\141';
auto ch2 = '\x61';

更多信息https://en.cppreference.com/w/cpp/language/escape

如果你想使用十进制值,你有两种选择:

  1. 转换为字符

    auto ch = static_cast<char>(97);
    
  2. 用户定义的文字

    char operator "" _ch(unsigned long num)
    {
         return static_cast<char>(num);
    }
    //...
    auto ch = 97_ch;
    

关于c++ - 有没有办法使用十进制 ASCII 码通过自动类型推断来获取字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52932000/

相关文章:

c++ - void* 是否保留继承信息?

c++ - 为什么可以使用 [=] 来修改 lambda 中的成员变量?

c++ - 使用统一初始化语法的自动类型推导 c++11 与 c++17

c++ - 纯右值的结果

c++ - 如何在 C++ 中将字节转换为 ASCII 十六进制表示形式?

c++ - Double 已经在 main.obj 中定义

c++ - 在 C++ 中输出分配给 double 组中的元素的字符串

c++ - 循环可变参数模板类参数

C++:获取包含成员子对象的完整对象的地址

c++ - 如何解决不匹配的替代解析器及其属性