clrscr()与gotoxy()函数在C++中怎么用

 我来答
tacyxx
推荐于2016-11-28 · TA获得超过1203个赞
知道小有建树答主
回答量:620
采纳率:100%
帮助的人:672万
展开全部
clrscr()清屏函数
gotoxy(x,y)说具体点就是在当前窗口内移动光标到指定位置(x,y),如果未自定义窗口,那么当前窗口缺省为整个文本屏,补充一下,光标坐标从窗口的左上角第一个字符(1,1)(在文本方式下编写窗口方式的程序,都会用到这个函数)

Visual C++中使用gotoxy() / clrscr()等函数

#include < windows.h >

void clrscr(void);
void clreol(void);
void clreoscr(void);
void gotoxy(int ,int );

// --- Funktionsimplementierung

/*********************************************************************************/

void clrscr(void) //clearscreen: gesamten Bildschirm leeren
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo; //variablendklaration
HANDLE hConsoleOut;
COORD Home = {0,0};
DWORD dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy); //bis cursorposition leerzeichen ausgeben
csbiInfo.dwCursorPosition.X = 0; //cursorposition X koordinate festlegen
csbiInfo.dwCursorPosition.Y = 0; //cursorposition Y koordinate festlegen
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition); //den cursor an die festgelegte koordinate setzen
}

/*********************************************************************************/

void clreol(void) //clear end of line: den rest der Zeile nach dem cursor l鰏chen
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo; //variablendklaration
HANDLE hConsoleOut;
COORD Home,pos;
DWORD dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

Home = csbiInfo.dwCursorPosition;
pos.X = 80 - csbiInfo.dwCursorPosition.X;

FillConsoleOutputCharacter(hConsoleOut,' ',pos.X,Home,&dummy);
}

/*********************************************************************************/

void clreoscr(void) //clear end of screen: alles nach dem cursor l鰏chen
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo; //variablendklaration
HANDLE hConsoleOut;
COORD Home;
DWORD dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

Home=csbiInfo.dwCursorPosition;
FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
}

/*********************************************************************************/

void gotoxy(int x,int y) //cursor an gewuenschte position auf dem bildschirm setzen
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo; //variablendklaration
HANDLE hConsoleOut;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

csbiInfo.dwCursorPosition.X = x; //cursorposition X koordinate festlegen
csbiInfo.dwCursorPosition.Y = y; //cursorposition Y koordinate festlegen
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition); //den cursor an die festgelegte koordinate setzen
}

参考资料: http://topic.csdn.net/t/20040619/00/3105330.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式