【问题】:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
【代码】:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a = 176, b = 219;
printf("%c%c%c%c%c\n", b, a, a, a, b);
printf("%c%c%c%c%c\n", a, b, a, b, a);
printf("%c%c%c%c%c\n", a, a, b, a, a);
printf("%c%c%c%c%c\n", a, b, a, b, a);
printf("%c%c%c%c%c\n", b, a, a, a, b);
system("pause");
return 0;
}
【想要实现的效果】:
【实际出现的效果】:
【原因】:
ASCII码表分为3部分:
第一部分:由00H到1FH共32个,一般用来通讯或作为控制之用。有些可以显示在屏幕上,有些则不能显示,但能看到其效果(如换行、退格)。
第二部分:是由20H到7FH共96个,这95个字符是用来表示阿拉伯数字、英文字母大小写和下划线、括号等符号,都可以显示在屏幕上。
第三部分:由80H到0FFH共128个字符,一般称为"扩充字符",这128个扩充字符是由IBM制定的,并非标准的ASCII码,这些字符是用来表示框线、音标和其它欧洲非英语系的字母。
显示乱码的主要原因文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,要显示扩展的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。
查看我的控制台的代码页:
具体修改控制台的默认代码页步骤如下:
鼠标左击控制台标题栏 -》点击“属性”查看
如何修改?网上找了很多方法,都不行,我是通过修改注册表的方式来手动修的。
鼠标左击控制台标题栏 -》点击“默认值”,选择使用旧版本控制台后关闭项目重新打开,选择437(OEM-美国)。
设置后此时“属性”页面的代码页依然是“936”,这时需要重新设置注册表。
找到regedit
然后,按照下图找到CodePage,双击。选择十进制,将936修改为437,然后重新调试就可以了。