我正在尝试使用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机器上运行程序时可能会导致错误。
答案 0 :(得分:1)
它不起作用,因为你“撒谎”:Xcode中的终端不是xterm-256color
,而是dumb
终端。更准确地说,显示代表NSTextStorage收集stdout
和/或(取决于目标切换)stderr
。
哑终端无法清洁显示屏。如果你想改变它,你可以编写一个类似于Xcode-Colors的插件,增加了理解ansi颜色代码的能力。
但是,如果您要求代码只在Windows和OSX上运行,那么您可能会坚持使用您的解决方案system("clear")
,因为它可以在“正常”OSX终端中完美运行。