Window控制台清屏

試著忘記壹切 提交于 2020-02-22 17:54:53

在Windows控制台编程中,我们有时需要清空屏幕,以便显示的需要
清屏有两种方法,最简单的一种

system("cls");

较为复杂的是调用Windows API
在之前,首先要弄清清屏的概念,清屏相当于填充空格字符,然后将光标设为{0,0}处。
代码如下

BOOL Clear(){
	CONSOLE_SCREEN_BUFFER_INFO cinfo;//用于储存控制台缓冲区信息,在这里主要获取控制台缓冲区大小
	DWORD recnum;
	GetConsoleScreenBufferInfo(hOut, &cinfo);
	//cinfo.dwSize储存的是缓冲区大小
	//cinfo.dwSize.X * cinfo.dwSize.Y 即需填充的字符数
	FillConsoleOutputCharacterW(hOut, L' ', cinfo.dwSize.X * cinfo.dwSize.Y, (COORD) { 0, 0 }, & recnum);//从{0,0}处开始填充' '字符,成功填充个数为recnum
	SetConsoleCursorPosition(hOut, (COORD) { 0, 0 });//将光标设为{0,0}
	if (recnum != cinfo.dwSize.X * cinfo.dwSize.Y) return 1;
	return 0;
}

这种方法较快。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!