我正在尝试在C语言中打印微秒符号,但输出结果为空。
printf("Micro second = \230");
I also tried using int i = 230;
printf("Character %c", i);
但是没有成功!有什么建议吗?
我正在尝试在C语言中打印微秒符号,但输出结果为空。
printf("Micro second = \230");
I also tried using int i = 230;
printf("Character %c", i);
\xE6
表示µ(== 230);\xB2
表示▒。 - zwol以下是C语言中标准的打印方式:
printf("%lc", L'\u00b5');
"µ"
硬编码。%ls
作为格式字符串或L'\u00b5'
。 - Jens Gustedt由于您使用的是Mac OS,可以放心地使用UTF-8终端。因此,请打开字符面板(编辑->特殊字符...),在其中找到微秒符号,并将其放入您的字符串中。
int main()
{
printf("µs\n");
}
只要您的源文件也是UTF-8格式,它就可以正常工作。否则,您需要找到其代码点(这也应在字符面板中指示)。将鼠标悬停在字符上以查找其UTF-8值(请原谅我的法语系统):
这意味着您可以使用printf("\xc2\xb5")
作为字符本身的独立编码替代。
LANG
环境变量设置为某些值,则它可能会选择不同的源字符集;您需要使用-finput-charset=UTF-8
选项覆盖此设置。对于其他编译器,谁知道呢。 - Adam Rosenfield我也遇到了同样的问题,我根据代码页437找到了解决方案。
"\xB5"
我只是把那段代码放进一个字符串里,然后就成功了。
我的开发环境是Windows下的C++。我试图将一个字符串转换成可以在SFML中显示的形式。
printf("%c", 230);
对我来说可以工作。 我认为这取决于操作系统。 这取决于编码(感谢zneak)。 我在Windows上。
在工作项目中使用了 C 和 C++14 的混合,以下是适用于我的方法:
printf("Micro second symbol = \xC2\xB5");
\xB5,和\230在我的输出上产生了▒。我的项目设备显然很挑剔,因为我尝试过其他一些在线IDE和Mac上的Xcode版本,都可以正常工作。
如果你尝试在控制台之外的其他地方打印,比如LCD屏幕,那么你的屏幕就必须被编程(创建和映射到xyz...),以包括该字符。不过根据我的经验,这在你正在创建的内容是什么方面会有很大的差异。
MICRO SIGN
符号 µ
。此外,你的回答并不比被接受的回答更好:https://dev59.com/oFTTa4cB1Zd3GeqPs4LG#5060616。 - chqrlie
\nnn
解释为八进制数。 十进制230是八进制346是十六进制E6; 八进制230是十进制152是十六进制98。 在代码页437中,根据使用230作为µ来判断,代码点152(十进制)是ÿ。 - zwol