让我说我有整数89,如何打印出89的ASCII值,即Y而不是打印出数字89?
答案 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);
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
,并写出结果字符。