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

C++ 是clrsc();C+中的函数+;?,c++,C++,我到处寻找这个函数,但找不到使它工作的头文件。 它说clrsc()未声明,这就引出了问题。是clrsc();C++中的一个函数?< /p> < p>它在旧Borland C编译器中是一个函数。< /P> 这不是C++标准函数。 < p>一个Web搜索说你想要的头文件是'CONIO.H '-我没有尝试过,所以没有保证。它的存在也取决于你正在编译的平台。 < P>最简单的方法是在实际C++中清除屏幕,只需发送一行空白行。当然,这是假设stdout指向屏幕而不是文件: for (int i = 0;

我到处寻找这个函数,但找不到使它工作的头文件。
它说clrsc()未声明,这就引出了问题。是clrsc();C++中的一个函数?< /p> < p>它在旧Borland C编译器中是一个函数。< /P>

这不是C++标准函数。

< p>一个Web搜索说你想要的头文件是'CONIO.H '-我没有尝试过,所以没有保证。它的存在也取决于你正在编译的平台。

< P>最简单的方法是在实际C++中清除屏幕,只需发送一行空白行。当然,这是假设stdout指向屏幕而不是文件:

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

cout此函数必须包含此头文件

#include <conio.h>
#包括

在有人发布通常的“请通过电子邮件向我发送conio.h文件”请求之前,我可以指出,这个古老的Borland头文件只包含函数声明。你还需要支持Borland库,它与任何C++ C++编译系统不兼容。 就所有意图和目的而言,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来完成这些工作。

我以前也做过borland

调查诅咒是个好主意。它可以在许多unix平台上工作

您可以看看SourceForge


看起来也很有希望。

在类Unix系统上,您可以使用VT100转义码

std::cout << "\033[2J" << std::flush;

std::cout您可以使用system cls命令清除输出屏幕

CrrScript()是来自Turbo C++,内部CONIO。H和CONIO。H是“非标准”,因此应该避免。 范例

    #include<windows.h>
    main()
    {
    some code....;
    system("cls");
    some more code;
    }
#包括
main()
{
一些代码。。。。;
系统(“cls”);
更多的代码;
}
它经过测试并能工作。。我使用DEV C++与明文编译器..:) 在Linux上,我总是使用:

void clrscr(void)
{
   fprintf(stdout, "\033[2J"); // clean screen
   fprintf(stdout, "\033[1;1H"); // move cursor to the first line
}

实际上,微软C++仍然有Curio。h,虽然CLSRSUR()功能不在那里。我的一位C老师(正式的C++老师)曾经给我们一个C头文件定义了这样的方法,使用WiNAPI调用实现。他从不花时间解释它不是任何标准图书馆的一部分,因此他总是收到学生们的问题,他们无法在家里编译他的例子。他也是一个电影迷。啊,回忆……你有没有想过,我的男人?:)它还假设控制台行缓冲区少于80行,这是不保证的。是的-但是如果您担心“清除”屏幕缓冲区,通常您知道要处理多少行。混合使用“endl”和“\n”似乎很奇怪。为什么这样做?清除屏幕知道行数的假设似乎荒谬;“clear”或“cls”命令不接受要清除的行数,是吗?其他选项也会将光标设置在左上角,而您的解决方案会将光标保留在左下角,并用大量空行填充用户的反斜杠?编译器也会为您定义WINDOWS或LINUX,不是吗?我不知道define是否区分大小写。通常,定义是通过windows.h作为“win32”包含的。这只是一个例子。我认为是的,除非你首先定义不应该阻止人们的定义!他们可以从库中反汇编函数并在头中插入定义,通过内联汇编执行它!以后用C++?我不这么认为:如果你阅读了
clear
的源代码,你会发现它实际上查找了终端类型并为该终端发出了相应的输出,而不是假设整个世界都是VT100。我将把它作为一个练习留给读者,让他们知道哪些应该在一个可移植程序中完成。