我想清除屏幕上的所有文字。 我尝试过使用:
#include <stdlib.h>
sys(clr);
提前致谢! 我正在使用OS X 10.6.8。抱歉混乱!
答案 0 :(得分:10)
您需要查看curses.h。它是一个终端(游标)处理库,它使所有支持的文本屏幕都以类似的方式运行。
有三个已发布的版本,第三个(ncurses)是您想要的版本,因为它是最新版本,并且移植到大多数平台。 official website is here,和there are a few good tutorials。
#include <curses.h>
int main(void)
{
initscr();
clear();
refresh();
endwin();
}
答案 1 :(得分:5)
清除屏幕的最佳方法是通过stdlib.h中的system(const char *command)
调用shell:
system("clear"); //*nix
或
system("cls"); //windows
然后,最好尽量减少对调用系统/环境的函数的依赖,因为它们可能导致各种未定义的行为。
答案 2 :(得分:3)
视窗:
system("cls"); // missing 's' has been replaced
Unix的:
system("clear");
您可以将其包装在一个更易于移植的单个代码中,如下所示:
void clearscr(void)
{
#ifdef _WIN32
system("cls");
#elif defined(unix) || defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__))
system("clear");
//add some other OSes here if needed
#else
#error "OS not supported."
//you can also throw an exception indicating the function can't be used
#endif
}
请注意,对unix的检查非常广泛。这也应该检测OS X,这就是你正在使用的。
答案 3 :(得分:1)
此函数或clrscn()之类的函数的可用性与系统有关,而且不可移植。
你可以保持简单并自己动手:
#include <stdio.h>
void clearscr ( void )
{
for ( int i = 0; i < 50; i++ ) // 50 is arbitrary
printf("\n");
}