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

标签 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 值。

最佳答案

像已经提到的评论中的其他人一样,您将无法可靠地打印 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 字符。

关于c - 如何使用 printf 在 C 中打印无穷大符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942860/

相关文章:

c - 如何获取变量 ASCII 值并将其用于求和

c - 在定义中将#a 字符串化,为什么不好

c++ - XCode 中的 fprintf C 有问题

c++ - Eclipse CDT 使用主项目编译器设置编译静态库

c - 前一个数组追加到当前数组

c - GtkWidget* 从函数返回导致段错误

elasticsearch - 哪种最佳做法是在python3中的混合编码文本中跳过非ascii字符?

c++ - posix_spawn() : Problem with error handling when using posix_spawn()

c++ - 将 ASCII 写入文件

c++ - 为什么这个输出看起来不确定? (是 sprintf、printf 还是十六进制文字的语法?)