什么是系统("CLS")的简单替代方案?

What's a simple alternative to system("CLS")?

本文关键字:简单 方案 系统 CLS 什么      更新时间:2023-10-16

在阅读了为什么system()是邪恶的之后,我决定不使用像system("CLS")system("PAUSE")这样的功能。有没有不依赖操作系统的简单替代方案?

有两种方法:

创建函数:

void ClearScreen()
{
    int n;
    for (n = 0; n < 10; n++)
        printf( "nnnnnnnnnn" );
}

这只是创建了一个显示100条新行的函数。缓慢,可悲,但它是有效的。

另外,不使用system("cls")的唯一其他非操作系统依赖的方法是使用ncurses和PDCurses,尽管它们对于较小的项目来说可能会过度使用。

NCurses适用于Unix、Linux和其他POSIX系统,而PDCurses则适用于DOS、Windows、OS/2和其他一些随机系统。

如前所述,没有可移植的"清除"屏幕的方法。然而,有一种可移植的"模拟"Windows的system("pause")的方法,即

std::cin.get(); // waits for ENTER

没有标准的C++11替代Windows特定的system("CLS"),因为C++11不了解屏幕。但是,请考虑使用GNU readline或ncurses(两者都在Linux上工作,并且都有Windows变体gnuwin32)。另请参阅POCO或Qt

我没有用于系统("CLS")的。但是您可以使用Sleep(int)函数。它不像系统那样设置("暂停"),但你可以设置其余的。该功能可以暂停程序,只要你愿意。它的参数是一个整数,根据它的值程序休眠。它是以毫秒为单位的。因此睡眠(1000)将暂停程序1000毫秒或1秒,因为1000毫秒=1秒。

 #include "iostream" // for the cout
 #include "windows.h" // for the Sleep() function
 using namespace std;
int main(){
cout << "hello" << endl;
Sleep(6000); // pauses program or puts it to 'sleep' for 6000 ms or 6 s

return 0;
}