函数clrscr在C和C ++中
今天的C或C ++编译器是否使用clrscr
系统函数?
clrscr()
是
定义的非标准函数(在ISO C99
和ISO 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