使用C++清除屏幕

Gle*_*rse 7 c++

我想清除我首先看到的几个选项的CMD屏幕

system('clr');  
Run Code Online (Sandbox Code Playgroud)

但是不想使用系统原因然后它使它依赖于windows,与unix版本相同

如果我试试

cout << string(22, '\n');
Run Code Online (Sandbox Code Playgroud)

然后我的下一行文字在屏幕的底部,我希望它在顶部.如何清除屏幕并将文本恢复到屏幕顶部?

因此说我有这个.

cout<<string(22, '\n');
cout<<"************Question 1 *******"<<endl;
cout<<"WHO WAS THE FIRST BLACK PRESEDENT?"<<endl;
cout<<"(1) Obama"<<endl;
cout<<"(2) Bush"<<endl;
cout<<"(3) Jordan" <<endl;
cin>>answer>>endl;
Run Code Online (Sandbox Code Playgroud)

这将清除屏幕然后将mymenu放在屏幕的底部...我怎样才能使屏幕清晰并将问题/答案重新放回屏幕顶部.

cat*_*lla 18

试试这个:它适用于Linux和Windows.

cout << "\033[2J\033[1;1H";
Run Code Online (Sandbox Code Playgroud)

这是一串特殊字符,可以转换为清除屏幕命令.

您可以将其包含在一个函数中,例如,clrscr()取决于您的实现.


Cmd*_*ozy 8

如果您想要一个适用于Windows,Mac和Linux/UNIX的解决方案,您需要提供自己的实现.我不相信有一种方法可以在所有平台上运行.

对于Mac/Linux/UNIX/BSD /等,ncurses提供了一种简单的方法(http://www.gnu.org/software/ncurses/).

对于Windows,您可能需要查看conio.h(http://en.wikipedia.org/wiki/Conio.h)或PDCurses(http://pdcurses.sourceforge.net/)或类似内容.或者,根据Microsoft知识库文章:http://support.microsoft.com/kb/99261,似乎您可以在没有任何第三方库的情况下执行此操作.

遗憾的是,没有标准的C/C++功能可以做到这一点.您应该能够编写一个小函数,它将使用我提到的不同方法和一些预处理器指令在任何平台上构建和工作.

如果您没有方便的方法来检测平台,我可能会推荐cmake.

  • 据我所知,是的.我希望结果只有一百行代码,你应该使用一个可以检测平台的构建系统,所以这可能不像你想象的那样"难看". (2认同)