我编写了一个小型控制台程序,需要偶尔清除终端屏幕。我为 *nix 系统编写了代码并system("clear")
在这些实例中使用。一旦我的代码完成,我就会对其进行审查以评估我的代码的可移植性。上述清除屏幕的方法是我唯一明显的可移植性问题。然后,我寻找其他可能的方法来清除终端,并在 上找到了一些文档ANSI Cursor Indexing
,特别是:
void cls() {
//27 is ESC ASCII char
printf("%c[2J",27); //clears screen
printf("%c[0;0H",27); //sets cursor at [0,0]
}
令我惊讶的是,这段代码在我的 *nix 系统上运行得非常好。我想知道,这个 ANSI 光标索引方案是否可移植?这段代码能否在所有使用 C 标准编译器的系统上按预期编译和运行?”