我有一个清除终端屏幕的功能。它应该适用于Windows和任何基于* nix的操作系统。如果该功能检测到呼叫者的操作系统是Windows,它将检查呼叫者是否正在使用cmd.exe
或其他内容(git-bash
或cygwin
)。
有更好的方法吗?我不喜欢我需要依赖HOME变量的事实。
编译器:g++
#include <cstdlib>
void clearScreen() {
#ifdef _WIN32
if (std::getenv("HOME")) // git-bash & cygwin home var is called HOME
std::system("clear"); // cmd's home var is called HOMEPATH
else
std::system("cls");
#else
// Assume POSIX
std::system("clear");
#endif
}
注意:此功能已在cmd.exe
,git-bash
和WSL
中经过测试。它尚未在Cygwin
中进行过测试。