我尝试了以下
printf ("%c", 236); //236 is the ASCII value for infinity
但我只是在屏幕上输出垃圾。
printf对于小于128的ASCII值正常工作。所以我尝试了以下
printf ("%c", 236u); //unsigned int 236
我仍然只是在垃圾。那么,我该怎么做才能使printf显示从128到255的ASCII值。
答案 0 :(得分:2)
与已经提到的评论中的其他人一样,您将无法在127之后可靠地打印字符(并假设它为ASCII),因为ASCII仅定义为127.此外,您看到的输出很大程度上取决于终端设置(即它配置的区域设置)。
如果您使用UTF-8打印得很好,可以试试wprintf
,如下所示:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main()
{
setlocale( LC_ALL, "en_US.UTF-8" );
wprintf (L"%lc\n", 8734);
return 0;
}
它会产生以下输出:
∞
8734
(或0x221E
)相当于符号∞
的UTF-8 UNICODE字符。
答案 1 :(得分:0)
标准C没有无限符号。这是为您的实现(例如您的编译器,您的操作系统,终端和您的硬件)定义的。考虑到C的设计具有可移植性,适用于使用非ASCII字符集的系统(例如EBCDIC)。