如何使用printf在C中打印无穷大符号

时间:2013-04-11 07:19:53

标签: c ascii printf

我尝试了以下

printf ("%c", 236);   //236 is the ASCII value for infinity

但我只是在屏幕上输出垃圾。

printf对于小于128的ASCII值正常工作。所以我尝试了以下

printf ("%c", 236u);  //unsigned int 236

我仍然只是在垃圾。那么,我该怎么做才能使printf显示从128到255的ASCII值。

2 个答案:

答案 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)。

相关问题