【问题标题】:Displaying a character as a decimal number with cout使用 cout 将字符显示为十进制数
【发布时间】:2015-04-18 03:43:04
【问题描述】:

在 C 编程语言中,我可以使用 printf 来显示一个字符及其等效的十进制代码

char c='e';
printf( "decimal value: %d   char value: %c\n",c,c);

如何在 C++ 中使用 cout 做同样的事情?例如,下面的代码显示字符,但我如何让cout 打印十进制值?

char c='e';
cout << c;

【问题讨论】:

  • 为什么是C语言标签?

标签: c++


【解决方案1】:
cout << +c;

一元+ 强制转换运算符会将char 隐式转换为int

Demo here

来自 5.3.1 一元运算符 aka expr.unary.op

[7] 一元+运算符的操作数应具有算术, 无范围枚举或指针类型,结果是 论点。 积分促销是在积分或 枚举操作数。结果的类型是 提升的操作数。


进一步阅读:

【讨论】:

  • 喜欢这个答案,因为这让我对所有模板参数使用相同的函数体charshortintlonglong long
  • @mxmlnkn 谢谢。我很高兴你喜欢它。
【解决方案2】:

c 转换为int 的最佳C++ 方法是static_cast&lt; int &gt;( c )

【讨论】:

    【解决方案3】:

    你可以将字符转换为 int 以获得 C++ 中的十进制值,如

    char c='e';
    std::cout << "Decimal : " << (int)c << std::endl;
    std::cout << "Char : " << c;
    

    通过(int)c,可以暂时将其转为int,得到十进制值。

    这个过程被称为type casting

    【讨论】:

    • A C 风格的演员阵容,真的吗?
    猜你喜欢
    • 1970-01-01
    • 2016-06-28
    • 2020-06-07
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多