使用c++和Xcode清理控制台

Clear console using C++ with Xcode?

本文关键字:控制台 Xcode c++ 使用      更新时间:2023-10-16

我正在尝试使用Xcode 4.1制作一个c++控制台应用程序,但我找不到清洁屏幕的命令,而程序正在执行…

任何想法?谢谢!

OSX不像Windows那样有"控制台"。它有伪终端,对于在它们"内部"运行的程序来说,它们就像一个老式的玻璃终端,对于设置它们的程序来说,它们就像一个双向管道。外部程序可以对内部程序的输入和输出做任何事情。这类程序的典型例子是Terminal。应用程序,它模拟了古老的VT-100, ssh,它通过安全通道将I/O转发到自己的控制终端(它本身可能是一个伪终端)。这一切都是在说,没有一种方法可以保证工作,因为伪终端外部的程序可能没有一个您可以有意义地"清除"的"屏幕"。(Expect就是一个很好的例子。)

话虽如此,如果屏幕,这些天你几乎可以指望它尊重VT-100控制代码。所以这应该是你想要的:
std::cout << "33[2J" << std::flush;

如果您发现您甚至需要更多的控制代码,那么是时候将您的程序与ncurses连接起来了,它为现代终端窗口所能提供的所有技巧提供了一个非常友好的API,并且在您的程序附加到不是 VT-100或其后代的终端(或模拟终端的程序)的越来越不可能的事件中,它也会支持您。