我到处寻找这个功能,找不到头文件来使这个工作。 它说clrscr()未声明,这让我想到了这个问题。是clrscr(); C ++中的函数?
答案 0 :(得分:34)
在旧的Borland C编译器中,它曾经是< conio.h>中的一个函数。
这不是C ++标准功能。
答案 1 :(得分:12)
在有人发布通常的“请给我发电子邮件conio.h文件”请求之前,我是否可以指出这个古老的Borland头文件只包含该函数的声明。您还需要支持Borland库,它与任何现代C ++编译系统都不兼容。
答案 2 :(得分: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
}
在windows中,您可能需要查看windows.h,您可以使用“句柄”直接与Windows控制台进行交互,通常在代码中将其标记为hWin。
在linux中,我对curses / ncurses有好运,虽然起初有点混乱。
更新调用系统程序(clear.exe?)是一种潜在的安全风险 - 如果有人能够以某种方式通过备用途径劫持系统调用,他们可以强制您的程序执行奇怪的操作。我的建议是深入你的平台的控制台api来完成这些工作。
答案 3 :(得分:3)
您必须为此功能包含此头文件
#include <conio.h>
答案 4 :(得分:1)
网络搜索说你想要的头文件是'conio.h' - 我还没有尝试过,所以没有保证。它的存在也可能取决于你正在编译的平台。
答案 5 :(得分:1)
您可以使用system cls命令清除输出屏幕..
clrscr()来自turbo c ++,在conio.h中,conio.h是“非标准”,因此应该可以避免。 例子
#include<windows.h>
main()
{
some code....;
system("cls");
some more code;
}
它的测试和工作..我使用dev c ++与mingw编译器.. :))
答案 6 :(得分:0)
在真正的C ++中清除屏幕的最简单方法是发送一堆空白行。当然这是假设stdout指向屏幕而不是文件:
for (int i = 0; i < 80; ++i)
cout << "\n";
cout << endl;
答案 7 :(得分:0)
答案 8 :(得分:0)
在类Unix系统上,您可以使用VT100转义码。
std::cout << "\033[2J" << std::flush;
答案 9 :(得分:0)
在Linux上我总是使用:
void clrscr(void)
{
fprintf(stdout, "\033[2J"); // clean screen
fprintf(stdout, "\033[1;1H"); // move cursor to the first line
}