【C语言】[其他]:输出完整的ASCII码(0~127+128~255)

来源:互联网 发布:网络事件炒作 编辑:程序博客网 时间:2024/04/30 05:54

我以前在C语言书背后看见的ASCII码表有0-255个字符,但是我想输出128-255的字符就乱码,一直没解决,今天有个新进的同事问这个问题,我去看了下,然后找度娘和论坛,找到了两种解决的方法,而且都亲测成功了。在这里我稍稍的总结下,借花献佛。

进入正题。。。

问题:假设我要在C程序编写一个在CMD中显示“Ω”,其ASCII码是234。一般会写出以下代码。(本文章末尾有128~255的对照表)

#include"stdio.h"
void main(void)
{

char a;

a = 234;

printf("a=%c.\n",a);

}

以上的代码是我们通常写的,一般不能CMD中正常的显示出“Ω”。我们要修改CMD窗口中的代码页。将其修改成437(OEM-美国),就可以正常显示显示SCII码中128-255的特殊字符。一般情况我们CMD中的默认代码页是936(ANSI/OEM - 简体中文GBK,用于在CMD中显示中文的,这样就不能在CMD中显示SCII码中128-255的特殊字符。

下面的两种方法都可以正常显示,亲测了。


方法1:程序中指定CMD的程序输出代码页

#include"stdio.h"

#include"windows.h" //这个头文件必须添加

void main(void)
{

SetConsoleOutputCP(437);//指定CMD显示的方式为英文,即可以正常显示ASCII码128-255中的字符;想要显示中文:SetConsoleOutputCP(936);

char a;

a = 234;

printf("a=%c.\n",a);

}

方法2:通过修改CMD的属性(程序默认代码页)

1)打开命令提示符cmd窗口。

开始菜单--->运行--->键入cmd

2)修改“默认值”

鼠标放在标题栏上右击--->默认值--->默认代码页,选择437(OEM-美国)

【注意:选择这个后,CMD的中将不能显示中文,想要显示中文,得选择936(ANSI/OEM - 简体中文GBK),这里的显示仅仅只是针对于CMD窗口中的显示,不影响系统的其他显示】

3)关闭当前的CMD窗口,然后重新编译程序,运行即可。

对于那些想我一样的菜鸟,下面有图。。。


有关ASCII编码的扩展知识:

绝大多数计算机的一个字节是8位,取值范围是0~255,而ASCII码并没有规定编号为128~255的字符,为了能表示更多字符,各厂商制定了很多种ASCII码的扩展规范。注意,虽然通常把这些规范称为扩展ASCII码(Extended ASCII),但其实它们并不属于ASCII码标准。例如以下这种扩展ASCII码由IBM制定,在字符终端下被广泛采用,其中包含了很多表格边线字符用来画界面。

1.扩展ASCII码 128~255码表



2.ASCII码  0-127码表




PILLAR

      2014.5.27


0 0
原创粉丝点击