函数clrscr在C和C ++中

今天的C或C ++编译器是否使用clrscr系统函数?

clrscr()定义的非标准函数(在ISO C99ISO C++-98都没有提到)(它本身不符合标准)。 但是一些编译器(如Turbo C / C ++ )支持它作为扩展。

就像conio.h所有内容一样。 clrscr()与标准C无关。 conio是基于DOS的C语言实现的常见API,适用于较低级别的控制台io – 清除屏幕,移动光标,读取单个按键等等。我不知道知道历史,但可能它可以追溯到DOS之前有ANSI.SYS支持光标定位的标准终端转义码,清除屏幕,改变颜色,……

如果你只是在玩学习C,使用conio函数没有坏处,但你应该避免养成#include 的习惯。 在我所看到的大多数问题中,其中包含了conio.h ,它甚至没有被使用……这种坏习惯导致无意义的非便携代码。

此外,作为conio.h的替代方案,您可以尝试使用ncurses ,它提供终端处理,游标管理,颜色和许多其他function。 特别是,它为clear()函数提供了与你提到的clrscr()函数类似的function。 对于Windows(必须是您的情况), PDCurses使用相同的API。 特别是, ncurses符合XSI Curses基本规范,并且被广泛采用; 如果任何程度的便携性很重要,你应该坚持下去。

DeathStation 9000及其ZOG C编译器仍然使用clrscr()

来自http://dialspace.dial.pipex.com/town/green/gfd34/art/

如果因为一些程序员感到需要消除显示设备的深层精神需求而使用ZOG C的Commence Launch(远程系统控制台请求)函数clrscr() ,那将更多的生命丢失将是不幸的。

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

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

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