[英]Is clrscr(); a function in C++?
我到處尋找這個功能,找不到頭文件來使這個工作。 它說clrscr()未聲明,這讓我想到了這個問題。 是clrscr(); C ++中的函數?
它曾經是舊的Borland C編譯器中<conio.h>中的一個函數。
它不是C ++標准函數。
在有人發布通常的“請給我發電子郵件conio.h文件”請求之前,我是否可以指出這個古老的Borland頭文件只包含該函數的聲明。 您還需要支持Borland庫,它與任何現代C ++編譯系統都不兼容。
如前所述,clrscr()來自turbo c ++,在conio.h中
對於所有意圖和目的,conio.h是“非標准的”,因此應該可以避免。
我傾向於使用預編譯器來選擇用於簡單清晰屏幕的內容,並且只需調用操作系統的清晰程序......它足夠聰明,可以知道屏幕的“高”程度。
// somewhere in the program
#define WINDOWS 1
void console_clear_screen() {
#ifdef WINDOWS
system("cls");
#endif
#ifdef LINUX
system("clear");
#endif
}
在Windows中,您可能需要查看windows.h,您可以使用“句柄”直接與Windows控制台進行交互,通常在代碼中將其標記為hWin。
在linux中,我對curses / ncurses有好運,雖然起初它有點令人困惑。
更新調用系統程序(clear.exe?)是一個潛在的安全風險 - 如果有人能夠以某種方式通過一個替代途徑劫持系統調用,他們可以強制你的程序做一些奇怪的事情。 我的建議是深入你的平台的控制台api來完成這些工作。
你必須包含此函數的頭文件
#include <conio.h>
您可以使用system cls命令清除輸出屏幕..
clrscr()來自turbo c ++,在conio.h中,conio.h是“非標准”,因此應該可以避免。 例
#include<windows.h>
main()
{
some code....;
system("cls");
some more code;
}
它的測試和工作..我使用dev c ++與mingw編譯器.. :)
網絡搜索說你想要的頭文件是'conio.h' - 我還沒有嘗試過,所以沒有保證。 它的存在也可能取決於你正在編譯的平台。
在Linux上我總是使用:
void clrscr(void)
{
fprintf(stdout, "\033[2J"); // clean screen
fprintf(stdout, "\033[1;1H"); // move cursor to the first line
}
在類Unix系統上,您可以使用VT100轉義碼。
std::cout << "\033[2J" << std::flush;
在真正的C ++中清除屏幕的最簡單方法是發送一堆空白行。 當然這是假設stdout指向屏幕而不是文件:
for (int i = 0; i < 80; ++i)
cout << "\n";
cout << endl;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.