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

H4c*_*0rD 15 c++

我到处寻找这个功能,找不到头文件来使这个工作.它说clrscr()未声明,这让我想到了这个问题.是clrscr(); C++中的函数?

Pab*_*ruz 34

它曾经是旧的Borland C编译器中<conio.h>中的一个函数.

它不是C++标准函数.

  • Borland确实有一些非常好的DOS图形库. (4认同)
  • 实际上,Microsoft C++仍然有conio.h,虽然像clrscr()这样的函数不存在. (3认同)

小智 12

在有人发布通常的"请给我发电子邮件conio.h文件"请求之前,我是否可以指出这个古老的Borland头文件只包含该函数的声明.您还需要支持Borland库,它与任何现代C++编译系统都不兼容.

  • 这不应该阻止人们!他们可以从库中反汇编函数,并在通过内联汇编执行它的标题中插入一个定义! (5认同)

Ape*_*ago 7

如前所述,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
}
Run Code Online (Sandbox Code Playgroud)

在Windows中,您可能需要查看windows.h,您可以使用"句柄"直接与Windows控制台进行交互,通常在代码中将其标记为hWin.

在linux中,我对curses/ncurses有好运,虽然起初它有点令人困惑.

更新调用系统程序(clear.exe?)是一个潜在的安全风险 - 如果有人能够以某种方式通过一个替代途径劫持系统调用,他们可以强制你的程序做一些奇怪的事情.我的建议是深入你的平台的控制台api来完成这些工作.

  • #define是不是小写?编译器也会为你定义WINDOWS或LINUX,不是吗? (3认同)