小龙 Dev-C++ 用户手册

在网上很多用 C 语言编写的趣味小游戏程序中,用到了 gotoxy() 和 clrscr() 这两个函数。但是当代的编程初学者常常会发现,编译通不过,出错信息是找不到这两个函数,令人困惑。这些函数的来源是这样的:在上世纪80-90年代,DOS 操作系统大行其道(Windows 系统尚未开发并广泛使用),由 Borland (宝兰德)公司开发的用于编写 C 或 C++ 程序的集成开发环境 Turbo C (后来改名叫 Borland C++)非常流行。这个集成开发环境中除了包含 C 和C++ 标准函数库之外,还包含了该公司自行开发的一个控制终端窗口屏幕输入和输出的扩充函数库,各个函数的原型在头文件“conio.h”中声明。该头文件的名称来源于英语“console input /output”,意为“终端窗口输入输出”。因此,只要在自己的程序中用 #include 命令包含该头文件,即在程序前面部分写上如下预处理命令行,就可使用该函数库中的各个函数。:

#include <conio.h>

该函数库中的函数在编写趣味小游戏程序时非常有用,所以得到了广泛的应用。现在流传下来的很多趣味小游戏程序中就用到了其中的函数,最常用的就是 gotoxy 函数和 clrscr 函数。

但是,时至今日,Windows 系统已经得到了广泛使用,运行于 DOS 系统上的 Turbo C(Borland C++)并没有合适的 Windows 升级版本。当代流行的 C 或 C++ 集成开发环境是 微软公司的 Visual C++ 或 免费的旧版Dev-C++、Code::Blocks(其中使用了免费的 GCC编译器),在这些集成开发环境中并不包括 Borland 公司的扩充函数库 conio,所以如果在程序中使用 gotoxy 函数或 clrscr 函数,就会编译出错。

为了支持使用 C/C++ 编写小游戏程程序,小龙Dev-C++ 已经通过内部技术方法来支持以下字符操作函数了:

void windowtitle(const char *title); //设置控制台窗口的标题

void windowsize(short width, short height); //设置控制台窗口的尺寸(参数取 -1 时恢复该参数的上一次数值)

void fontsize(int size); //设置控制台窗口中的字体大小(字号)

void clrscr(void); //清空屏幕

void delay (int tm); //延迟(以毫秒为单位)

void gotoxy(short x, short y); //移动光标到坐标位置 (x, y)

void showcursor(bool stat (1); //显示或隐藏光标(无参数或1为显示,0为隐藏)

//注意:不要与 Windows.h 中自带的"ShowCursor"函数(此函数要求配对地显示或隐藏)相混淆

void hidecursor(); //隐藏光标

void textcolor(int forecolor, int backcolor (-1);//设置文本颜色

void textbackground(int backcolor); //设置文本背景颜色

在使用上面两个函数时,可以使用以下用全大写标识符表示的颜色常量:
BLACK (黑色), BLUE (蓝色), GREEN (绿色), CYAN (青色(蓝绿色)), RED (红色), MAGENTA (紫色),
BROWN (棕色(浅黄)), LIGHTGRAY (白色(浅灰)), DARKGRAY (深灰色), LIGHTBLUE (亮蓝色), LIGHTGREEN (亮绿色),
LIGHTCYAN (亮青色), LIGHTRED (亮红色), LIGHTMAGENTA (亮紫色(粉红)), YELLOW (亮黄色), WHITE (亮白色), BLINK(闪烁)

 

在程序中使用以上函数时,需要用 #include 命令包含头文件 <conio.h>,即在文件头部写如下代码行:

#include <conio.h>

还要注意:源程序文件的扩展名必须是 “.cpp” ,而不能是 “.c”(否则编译时会出错)。

 

在小龙Dev-C++ 安装文件夹的 “Example”文件夹下有如下相关示例程序 :

conio-test.cpp:顺序地测试各个函数(windowtitle, gotoxy, clrscr, windowsize, fontsize, textbackground, textcolor, showcursor, hidecursor),展示其用法。

conio-snake.cpp:仅用一个 main 函数实现的经典的字符界面“贪吃蛇”小游戏。

 

 


文档编写者联系邮箱:anbangli@foxmail.com