在C ++ / XCode中清除屏幕

时间:2014-02-20 12:41:21

标签: c++ xcode

我正在尝试使用XCode为类编写C ++程序。我想做的一件事就是简单地清除屏幕。我已经研究了如何做到这一点,但问题是代码需要在Windows和Macintosh计算机上运行。我看了一些其他类似的问题,但没有一个答案对我有帮助。我知道没有“屏幕”,但我希望系统清除输出窗口。我知道命令system("clear");做了我想要的,但是当XCode测试程序时,它不是清除屏幕而是打印TERM Variable not set

我尝试打开终端并键入clear,它实际上确实以我想要的方式响应,那么为什么XCode内部的'终端'不能这样做呢?我只想让XCode中的输出窗口以与终端相同的方式响应clear

这是我已经尝试过的东西;

我去了终端并运行echo $TERM,终端回复xterm-256color。然后我转到XCode并打开“Scheme”设置,并在“Arguments”下找到了Environment Variables设置。我添加了一个名为TERM的变量(到空白列表),并给它赋值xterm-256color。再次运行程序时,输出会在输出窗口中显示¿[H¿[2J,位于TERM Variable not set以前打印的位置。

最后,作为提醒,我无法更改源代码,或者在Windows机器上运行程序时可能会导致错误。

1 个答案:

答案 0 :(得分:1)

它不起作用,因为你“撒谎”:Xcode中的终端不是xterm-256color,而是dumb终端。更准确地说,显示代表NSTextStorage收集stdout和/或(取决于目标切换)stderr

哑终端无法清洁显示屏。如果你想改变它,你可以编写一个类似于Xcode-Colors的插件,增加了理解ansi颜色代码的能力。

但是,如果您要求代码只在Windows和OSX上运行,那么您可能会坚持使用您的解决方案system("clear"),因为它可以在“正常”OSX终端中完美运行。