答案 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;