gotoxy_百度百科
收藏
0有用+1
0

gotoxy

Borland C 扩充函数库 conio.h 中声明的一个函数
gotoxy(int x, int y)是 Borland C 扩充函数库 conio.h 中声明的一个函数,功能是将光标移动到指定位置。在当代的 Visual C++ 或 GCC 中可以自定义这个函数。
外文名
gotoxy
原    型
void gotoxy(int x, int y)
用    法
gotoxy(x, y)
功    能
光标移动到指定位置说明

功能与定义

播报
编辑
在上世纪80-90年代流行的集成开发环境 Turbo C 或 Borland C 中的扩充函数库 conio.h 提供了 gotoxy 函数,用于屏幕输出,功能是将光标移动到屏幕指定位置。在屏幕的左上角被定义为光标的坐标原点 (1, 1),横向为 X 轴,纵向为 Y 轴。
函数原型声明: void gotoxy(int x, int y);
用法:gotoxy(x, y) 将光标移动到指定列坐标 x 和行坐标 y。设置光标到文本屏幕的指定位置,其中参数 x,y 为文本屏幕的坐标。gotoxy(1,1)将光标移动到屏幕左上角。
由于它不是一个 C 和 C++ 标准函数库中的函数,在当代的其它编译器(例如 Visual C++ 或 GCC)中并没有提供这个函数(例如 Dev-C++ 、Code::Blocks和 C-Free 都是使用 GCC编译器)。不过可以利用 Windows 提供的API(应用程序接口)函数自定义这个函数 [1]。下面是一个简洁的版本:
void gotoxy(short x, short y) { COORD coord = {x, y}; //COORD是Windows API中定义的一种结构体类型,表示控制台屏幕上的坐标。 //上面语句是定义了COORD类型的变量coord,并以形参x和y进行初始化。 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); //GetStdHandle(STD_OUTPUT_HANDLE); 获取控制台输出句柄 //然后用SetConsoleCursorPosition设置控制台(cmd)光标位置 }
注意,在上面代码中使用了Windows 的 API 函数,所以需要在程序中包含头文件 windows.h:
#include windows.h
另外,利用API自定义得到的gotoxy(x,y)函数定义左上角为(0,0),与原始Turbo C、Borland C中定义的(1,1)不同,需要注意。

应用举例

播报
编辑
如果在 Turbo C 或 Borland C 中使用 gotoxy 函数,就需要在文件头部添加如下代码行,以包含头文件 conio.h:
#include conio.h
而在 Visual C++ 或 GCC 中使用 gotoxy 函数,就需要把上面自定义的 gotoxy 函数写在自己的程序中。
举例:下面这个 C 程序将在屏幕中第5行10列(横向为X,纵向为Y轴)中央输出“hello world”
#include <stdio.h> #include <windows.h> void gotoxy(short x, short y) { COORD coord = {x, y}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } int main(void) { gotoxy(10, 5); printf("Hello world\n"); return 0; }