簡體   English   中英

是clrscr(); C ++中的函數?

[英]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;

http://www.termsys.demon.co.uk/vtansi.htm

在真正的C ++中清除屏幕的最簡單方法是發送一堆空白行。 當然這是假設stdout指向屏幕而不是文件:

for (int i = 0; i < 80; ++i)
     cout << "\n";
cout << endl;

我曾經也做過borland。

調查詛咒是個好主意。 它適用於許多unix平台。

您可以在source forge查看nconio

看起來也很有希望。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM