函数clrscr在C和C ++中

时间:2010-07-12 06:31:00

标签: c++ c

5 个答案:

答案 0 :(得分:13)

clrscr()ISO C99中定义的非标准函数(在ISO C++-98中也未在<conio.h>中提及)(其本身不符合标准)。但是有些编译器(如Turbo C/C++)支持它作为扩展。

答案 1 :(得分:7)

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

如果您只是在玩C学习,使用conio函数没有任何害处,但您应该避免养成#include <conio.h>的习惯。在我在SO上看到的大多数问题中conio.h被包含在内,它甚至没有被使用......这种坏习惯会导致无意义的非便携代码。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

  

如果再有的话,那将是不幸的   生活因为一些而失去了   程序员感受到深刻的精神需求   擦除显示设备,和   更多,使用ZOG C的Commence   启动(远程系统控制台   请求)功能, clrscr()

答案 4 :(得分:-1)

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

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

请参阅http://www.termsys.demon.co.uk/vtansi.htm