在vc中如何用printf函数输入字符串"sin30°"

注意那个特殊数学符号"°",在ASCII码中,它好像是属于扩展字符,能通过转义字符显示出来吗?我上机测试时不可以,但也许是我设置有问题,那怎么才能显示出那些扩展字符呢?

"°"似乎是全角字符,它不能用一个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输出,但实际上根本就没这个必要,只要你能打出来的字符串,直接写在""里边就能原样输出了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-03
能显示的,你是不是用tc

vc没问题
相似回答
大家正在搜