在阅读为什么system()
是邪恶之后,我决定不使用system("CLS")
和system("PAUSE")
等功能。是否有任何不依赖操作系统的简单替代方案?
答案 0 :(得分:0)
由于C ++ 11不了解屏幕,因此没有标准的C ++ 11替代Windows特定system("CLS")
。但是,请考虑使用GNU readline或ncurses(两者都适用于Linux,并且具有Windows变体gnuwin32)。另请参阅POCO或Qt
答案 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")
的唯一其他非操作系统依赖方式是使用ncurses和PDCurses,尽管它们对于较小的项目可能过度。
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;
}