如何在C中打印ASCII而不是整数?

时间:2016-12-04 10:57:28

标签: c

让我说我有整数89,如何打印出89的ASCII值,即Y而不是打印出数字89?

2 个答案:

答案 0 :(得分:6)

假设你有一个整数int value = 89;,你可以

  • 使用printf("%c", value);代替printf("%d", value);

  • 或只是putchar(value);

但请注意,Y不是89的ASCII值。反过来说:字符Y的ASCII值为89。除了ASCII之外,C语言支持不同的字符集,因此'Y'可能不一定具有值89,实际上它在仍然使用EBCDIC字符集的IBM大型机上的值为232

答案 1 :(得分:5)

使用c转换说明符:

printf("%c\n", (char) 89);

chqrlie comment指出,只是简单地说:

printf("%c\n", 89);

或上下文:

char c = 89;  /* or int c = 89; */

printf("%hhd is '%c'.\n", c, c);

Referencing the C11 Standard (draft)

  

7.21.6.1 fprintf功能

     

[...]

     

8转换说明符及其含义为:

     

[...]

     

c

     

[...] int参数转换为   unsigned char,并写出结果字符。