"°"似乎是全角字符,它不能用一个char型变量存储,而应该用两个连续的char型变量输出,如果在程序中输入如下程序:
#include<stdio.h>
main()
{
printf("%x\n",'°');
}
输出结果将是a1e3,其中%x代表以16进制整型输出'°'的值。可以判断"°"的两位对应ASCII码值是分别是a1和e3(16进制),转换成10进制应该是161和227,因此可以通过如下方式输出你想要的结果:
#include<stdio.h>
main()
{
printf("sin30%c%c",0xa1,0xe3);
}
或
#include<stdio.h>
main()
{
printf("sin30%c%c",161,227);
}
当然也可以利用转义符,但转符只支持16进制和8进制,若用16进制,程序应为
#include<stdio.h>
main()
{
printf("sin30\xa1\xe3");
}
若用8进制,程序应为
#include<stdio.h>
main()
{
printf("sin30\241\343");
}
另外,我不知道你问题的要求是什么,如果必须以ASCII码值的方式输出"sin30°",你可以把所有字符都换成对应的ASCII码,程序如下
#include<stdio.h>
main()
{
printf("\163\151\156\63\60\241\343");
}
但如果只是要输出"sin30°"可以直接输出这个字符串
#include<stdio.h>
main()
{
printf("sin30°");
}
因此想要输出扩展字符,可以通过输出两个连续的char输出,但实际上根本就没这个必要,只要你能打出来的字符串,直接写在""里边就能原样输出了。
温馨提示:答案为网友推荐,仅供参考