clrscr( )用法

您所在的位置:网站首页 c语言清屏代码使用 clrscr( )用法

clrscr( )用法

2024-06-08 11:13| 来源: 网络整理| 查看: 265

函数名: clrscr

功  能: 清除文本模式窗口,清屏的意思,即把之前显示出的文字字符去掉,是clear screen的简写 

用  法: void clrscr(void);

程序例: #include int main  (void) {   int i;   clrscr();   for (i = 0; i < 20; i++)   {     printf("%d\r\n", i);   }     cprintf("\r\nPress any key to clear screen");   getch();   clrscr();   printf("The screen has been cleared!");   getch();   return 0; } 注意: ①只有在Turbo c 中可以运行 ! ②在Turbo C++ 中,需要先另存为(save as).C格式,才能使用。 另解: 在VC中无法调用该函数,有下列办法: 1.  #include system("cls"); 这种办法的缺点是程序额外运行系统程序执行清屏操作,延长了程序执行时间。   2.自己写函数,这种办法比较快。 这是从微软MSDN得到的方法: /* Standard error macro for reporting API errors */ #define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s \ on line %d\n", __FILE__, GetLastError(), api, __LINE__);} void cls( HANDLE hConsole ) { COORD coordScreen = { 0, 0 }; /* here's where we'll home the cursor */ BOOL bSuccess; DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */ DWORD dwConSize; /* number of character cells in the current buffer */ /* get the number of character cells in the current buffer */ bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi ); PERR( bSuccess, "GetConsoleScreenBufferInfo" ); dwConSize = csbi.dwSize.X * csbi.dwSize.Y; /* fill the entire screen with blanks */ bSuccess = FillConsoleOutputCharacter( hConsole, (TCHAR) ' ', dwConSize, coordScreen, &cCharsWritten ); PERR( bSuccess, "FillConsoleOutputCharacter" ); /* get the current text attribute */ bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi ); PERR( bSuccess, "ConsoleScreenBufferInfo" ); /* now set the buffer's attributes accordingly */ bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten ); PERR( bSuccess, "FillConsoleOutputAttribute" ); /* put the cursor at (0, 0) */ bSuccess = SetConsoleCursorPosition( hConsole, coordScreen ); PERR( bSuccess, "SetConsoleCursorPosition" ); return; }   这是我在CSDN里面看到的,并适当的做了添加: /*清屏函数*/ #include #include #define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s on line %d\n", __FILE__, GetLastError(), api, __LINE__);} void MyCls(HANDLE) ; inline void clrscr(void) { HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE); MyCls(hStdOut); return; } void MyCls(HANDLE hConsole) { COORD coordScreen={0,0};//设置清屏后光标返回的屏幕左上角坐标 BOOL bSuccess; DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi;//保存缓冲区信息 DWORD dwConSize;//当前缓冲区可容纳的字符数 bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息 PERR(bSuccess,"GetConsoleScreenBufferInfo"); dwConSize=csbi.dwSize.X * csbi.dwSize.Y;//缓冲区容纳字符数目 //用空格填充缓冲区 bSuccess=FillConsoleOutputCharacter(hConsole,(TCHAR)' ',dwConSize,coordScreen,&cCharsWritten); PERR(bSuccess,"FillConsoleOutputCharacter"); bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息 PERR(bSuccess,"ConsoleScreenBufferInfo"); //填充缓冲区属性 bSuccess=FillConsoleOutputAttribute(hConsole,csbi.wAttributes,dwConSize,coordScreen,&cCharsWritten); PERR(bSuccess,"FillConsoleOutputAttribute"); //光标返回屏幕左上角坐标 bSuccess=SetConsoleCursorPosition(hConsole,coordScreen); PERR(bSuccess,"SetConsoleCursorPosition"); return; } /*测试*/ void main(){   printf("1111") ;   clrscr() ; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3