什么是系统的简单替代品(“CLS”)?

时间:2014-10-25 14:23:22

标签: c++

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

4 个答案:

答案 0 :(得分:0)

由于C ++ 11不了解屏幕,因此没有标准的C ++ 11替代Windows特定system("CLS")。但是,请考虑使用GNU readlinencurses(两者都适用于Linux,并且具有Windows变体gnuwin32)。另请参阅POCOQt

答案 1 :(得分:0)

有两种方法:

创建一个功能:

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

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

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

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

答案 2 :(得分:0)

如前所述,没有“清除”屏幕的便携方式。然而,有一种“模仿”Windows system("pause")的便携方式,即

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

答案 3 :(得分:-2)

我没有系统(“CLS”)。但是你可以使用Sleep(int)函数。它不像系统设置(“PAUSE”),但您可以设置其余部分。只要您愿意,该功能暂停程序。它的参数是一个整数,根据它的值,程序会休眠。它基于毫秒。所以Sleep(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;
}