yxk*_*yxk 26 c++ linux windows console cross-platform
我需要一个跨平台的解决方案来清除用C++编写的Linux和Windows控制台.这样做有什么功能吗?另请注意,我不希望最终用户程序员必须更改程序中的任何代码以使其清除Windows vs Linux(例如,如果必须在两个函数之间进行选择,则必须做出决定在运行时或在编译时自动执行).
fms*_*msf 53
#include <cstdlib>
void clear_screen()
{
#ifdef WINDOWS
std::system("cls");
#else
// Assume POSIX
std::system ("clear");
#endif
}
Run Code Online (Sandbox Code Playgroud)
Nic*_*lli 13
在linux上,可以清除控制台.最好的方法是将以下转义序列写入stdout:
write(1,"\E[H\E[2J",7);
Run Code Online (Sandbox Code Playgroud)
这是/ usr/bin/clear所做的,没有创建另一个进程的开销.
小智 10
一个简单的技巧:为什么不使用宏结合使用system()命令清除控制台来检查操作系统类型?这样,您将使用适当的控制台命令作为参数执行系统命令.
#ifdef _WIN32
#define CLEAR "cls"
#else //In any other OS
#define CLEAR "clear"
#endif
//And in the point you want to clear the screen:
//....
system(CLEAR);
//....
Run Code Online (Sandbox Code Playgroud)
简答
void cls(void)
{
system("cls||clear");
return;
}
Run Code Online (Sandbox Code Playgroud)
长答案,请阅读:
归档时间: |
|
查看次数: |
55009 次 |
最近记录: |