今天看着书打了一段程序,显示一张扑克牌,其中问题多多,现记录如下。
首先看看我要显示的效果,如图:
这段程序的代码如下:
Code
这里的头文件有两个,stdio.h和conio2.h。原本这个程序是在TC2下编译的,我用的是dev c++ 4.9.9.2。dev里的conio.h和TC里的conio.h不一样,TC里面的conio.h支持gotoxy(),textbackground(),cprintf(),textcolor(),clrscr(),putch()这些函数,因此我下了conio-2.0-1mol.DevPak(我已经上传了这个文件),安装后打开dev c++,工具-->编译器选项-->编译器-->在连接器命令加入以下命令,选中并写入"-lconio".
这样我们就能引用conio2.h这个头文件了,就能使用原来在TC里面使用的那些函数了。
第二,putch()输出时由于超过了128个ASCII码,所以就用到了扩展ASCII码,在中文的CMD下无法正常显示,不是因为dev编译器不支持扩展ASCII码,而是中文代码页CodePage不支持扩展ASCII显示。如图:
因此得把CodePage设置成473步骤如下:
1.在CMD上右键选中“默认值”
2.把默认代码页选成437(OEM-美国)
编译运行就OK了。
CodePage的代码可以在控制面板里面的区域和语言选项中查看
下面是ASCII代码表:0~127是标准ASCII码,128后面的都是扩展ASCII码。
ASCII码大致可以分作三部分組成。
第一部分由 00H 到 1FH 共 32 个,一般用来通讯或作为控制之用,有些字符可显示于屏幕,有些则无法显示在屏幕上,但能看到其效果(例如换行字符、归位字符)。
第二部分是由 20H 到 7FH 共 96 个,这 95 个字符是用来表示阿拉伯数字、英文字母大小写和底线、括号等符号,都可以显示在屏幕上。如下表:
第三部分由 80H 到 0FFH 共 128 个字符,一般称为『扩充字符』,这 128 个扩充字符是由 IBM 制定的,并非标准的 ASCII 码。这些字符是用来表示框线、音标和其它欧洲非英语系的字母。