-2
A
回答
0
由於您使用的是Windows,你可以這樣做:
system('cls')
下面是一個例子:
#include <stdio.h>
int main()
{
printf("Press enter to clear the screen.");
getchar();
system("cls");
return 0;
}
如果您使用Microsoft Visual Studoo發展,要以編程方式清除屏幕通過輸出空格,請參見http://msdn.microsoft.com/en-us/library/windows/desktop/ms682022(v=vs.85).aspx處的示例2。
0
如果您在詢問之前曾經搜索過谷歌,您會在第一個結果中找到this link。
引述的方法之一:
的Windows:
#include <windows.h> void ClearScreen() { HANDLE hStdOut; CONSOLE_SCREEN_BUFFER_INFO csbi; DWORD count; DWORD cellCount; COORD homeCoords = { 0, 0 }; hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); if (hStdOut == INVALID_HANDLE_VALUE) return; /* Get the number of cells in the current buffer */ if (!GetConsoleScreenBufferInfo(hStdOut, &csbi)) return; cellCount = csbi.dwSize.X *csbi.dwSize.Y; /* Fill the entire buffer with spaces */ if (!FillConsoleOutputCharacter( hStdOut, (TCHAR) ' ', cellCount, homeCoords, &count )) return; /* Fill the entire buffer with the current colors and attributes */ if (!FillConsoleOutputAttribute( hStdOut, csbi.wAttributes, cellCount, homeCoords, &count )) return; /* Move the cursor home */ SetConsoleCursorPosition(hStdOut, homeCoords); }
0
有一個關於該主題的一個KB article。
兩個選項:
寫,這將編程清除屏幕
/* 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; }
使用的系統函數的函數(不是很漂亮;需要啓動一個shell和命令)
system("cls");
2
鋼琴家,您可以使用WinAPI功能與控制檯一起工作。
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (!hConsole)
return;
之後確定光標位置:
CONSOLE_SCREEN_BUFFER_INFO csbi = {0};
GetConsoleScreenBufferInfo(hConsole, &csbi);
COORD coordCur = csbi.dwCursorPosition;
而且......
while (TRUE) { // your cycle goes here
// ...
// now you can change position of the cursor
coordCur.X = newX;
coordCur.Y = newY;
SetConsoleCursorPosition(hConsole, coordCur);
// and print any information from the new position
printf("..."); // old text will be replaced
}
所以,如果你想改變你不需要清除並刷新所有控制檯一小段文字。
ps。不要忘了釋放一個句柄:
CloseHandle(hConsole);
相關問題
- 1. XNA更新和屏幕刷新
- 2. 如何在屏幕分辨率更改後刷新屏幕?
- 3. Firebug的控制檯刷新
- 4. Graphics.h刷新屏幕
- 5. Java刷新屏幕
- 6. 如何在刷新刷新後保持屏幕上的任何更改
- 7. AngularJS - 如何刷新控制器更改/刷新JSON調用
- 8. 如何在BlackBerry中刷新屏幕?
- 9. 如何刷新android主屏幕圖標?
- 10. 如何從當前屏幕刷新UITableView
- 11. 如何刷新lightswitch中的父屏幕?
- 12. 如何獲得屏幕刷新率?
- 13. 如何控制鎖定屏幕上的通知更新頻率
- 14. UIApplicationExitsOnSuspend和屏幕刷新
- 15. 覆蓋屏幕刷新率
- 16. GNU屏幕刷新問題
- 17. reloadData不刷新屏幕
- 18. 無效()不刷新屏幕
- 19. 刷新屏幕從BillingReceiver內
- 20. 更新NUnit控制檯
- 21. 刷新控制檯日誌數據,無需刷新頁面
- 22. 刷新控制檯中的值
- 23. 刷新助手從Rails的控制檯
- 24. Rails 3控制檯沙箱刷新?
- 25. AndEngine更新屏幕
- 26. 屏幕未更新
- 27. 重新定位控制檯窗口相對於屏幕
- 28. Android:強制屏幕刷新方向更改
- 29. 控制檯架構更新和新表
- 30. 如何在刷新時進行全屏幕背景更改?
我不確定清楚的控制檯方法,但可以嘗試檢測控制檯的高度並添加適量的換行符。 –