system(“clear”)在C++中稳定吗?

xwbd5t1u  于 2023-03-14  发布在  其他
关注(0)|答案(1)|浏览(136)

最近我发现了一种清除我正在使用的编译器中的终端的方法,使用system("clear"),从外观上看它不需要任何额外的头文件。我想知道这个函数是否与众多流行的编译器兼容,并且它是否稳定(如果我在一个项目中多次使用它,是否会遇到问题)?
另一种清除终端的方法是使用转义字符,但经过研究后发现这似乎不太可靠,因为它是特定于ANSI兼容终端的。我想知道system("clear")是否也有这种要求,因为我想确保我可以在我正在进行的项目中大量使用它。

x33g5p2x

x33g5p2x1#

我想知道这个函数是否与许多流行的编译器兼容
编译器编译代码。system("clear") * 与编译器 * 兼容。
如果我在一个项目中多次使用它,我会遇到问题吗?
你会遇到完全相同的问题,当你使用它一次。我会期望它是“安全”使用多次,它只是清除终端。
我想知道系统(“clear”)是否也有这样的要求
system有多个要求:

  • 标准库必须提供system()函数。
  • 系统必须具有 shell
  • 该shell可以被执行

这些在任何微控制器上都是不正确的。
shell需要有一个clear命令,这个命令必须存在。在小型操作系统或 * 任何 * 没有安装ncurses的Linux系统上都不是这样。
最后,命令clear必须做正确的事情。这意味着您必须有一些兼容的终端,clear知道在这里通信的方法。这意味着多个层次-在Linux上,有一个whole database,它只包含在哪个终端上发送什么做什么。在Linux上,从ncurses clear查询整个数据库,根据$TERM环境变量查找终端配置,查找要发送的字符串以清除该终端的字符串,最后发送该字符串。在 * 任何 * 其他系统上,这可能 * 以任何方式 * 以不同方式工作。
相反,如果您依赖于终端功能,请考虑在项目中只使用ncurses。

相关问题