使用cout将字符显示为十进制数

时间:2015-04-18 03:43:04

标签: c++

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

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

如何使用cout在C ++中执行相同的操作?例如,以下代码显示字符,但如何让cout打印小数值?

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

3 个答案:

答案 0 :(得分:9)

cout << +c;

一元+强制转换操作符会将char隐式转换为int

Demo here

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

  

[7]一元+运算符的操作数应该有算术运算,   unscoped枚举,或指针类型,结果是值   争论。 整体推广是对积分或   枚举操作数。结果的类型是   推广操作数。


进一步阅读:

答案 1 :(得分:8)

c投放到int的最佳C ++方式是static_cast< int >( c )

答案 2 :(得分:4)

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

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

通过执行(int)c,您可以暂时将其转换为int并获取小数值。

此过程称为type casting