如何在带有iso_8859-1的C程序中输出度数符号?

NUO*_*NUO 8 c iso-8859-1

我查了iso_8859-1的手册,找到了度数符号:

\n\n
Oct   Dec   Hex   Char   Description\n260   176   B0     \xc2\xb0     DEGREE SIGN\n
Run Code Online (Sandbox Code Playgroud)\n\n

代码:

\n\n
int main( int argc, char *argv[])\n{\n    char chr = 176; //stores the extended ASCII of a symbol\n    printf("Character with an ascii code of 251: %c \\n", chr);\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但它打印出来的是?.

\n\n

如何在 C 程序中输出学位符号?我需要包含一些文件吗?

\n

Jen*_*edt 2

要使用 ASCII 以外的其他字符,在大多数平台上,您必须切换到能够处理此类字符的“区域设置”。在你的开始main你应该有

\n\n
   #include <locale.h>\n   int main(void) {\n     setlocale(LC_ALL, "");\n   ...\n   }\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里的空字符串""字面上代表您平台的默认区域设置。

\n\n

现在,您的平台支持什么区域设置是您必须自己找出的东西,您没有向我们提供足够的信息。我强烈建议不要像您提议的那样使用过时的编码,而是选择 UTF-8。

\n\n

通常,您可以将 UTF-8 字符序列自然地嵌入到普通的 C 字符串中,因此类似的内容"105\xc2\xb0 C"应该打印为度数字符。

\n