C语言经典例题100道

程序【7】

题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

程序分析:字符共有256个。不同字符,图形不一样。

注意:!!!该程序非常特殊,它需要使用特殊的代码页  437 OEM-美国

而我们正常使用的代码页都是 936(ANSI/OEM-简体中文GBK)

 

 在这里我要给读者一个特别提醒,不是代码错了,而是这个程序需要特殊的代码页,相信有很多人都像我一样,把这个代码来回改个十几次,最后受不了了,查了一下,发现代码压根没毛病,好气!!!emmmmm。。。

如果不更改,仍然使用936(ANSI/OEM-简体中文GBK)的代码页,就会出现中文乱码,很气

看看这啥东西呀,555~

具体呢是因为:

176的16进制是B0,219的16进制是DB,0xB0DB是"佰"字的内码,所以输出的就是"佰"了。主要原因是文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,要显示扩展的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。

对于不同的编译器更改代码页的方式也不一样!!!

首先呢,VC6.0的解决方法是:

  • 1.点击运行界面左上角标题栏图标【c:\】,选择默认值一项
  • 2.修改默认代码页,936(ANSI/OEM-简体中文GBK)为437 OEM-美国
  • 3、关闭后重新运行一下即可

然后是VS的解决方案:

小编只知道这么多,至于其他编译器,就像吃饭一样,汤换碗不换,只要找到可以进行修改代码页就可以了。自行摸索获得的成就感会更大!!!

最后呢,话不多说,直接上代码

#include<stdio.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);
    return 0;
}

得出来的图案也是非常有意思的:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值