Limpar o ecrã com o c++
Eu gostaria de limpar a tela CMD eu vi algumas opções primeiro é
system('clr');
mas não quero usar o sistema porque, em seguida, torna-o dependente do windows, o mesmo com a versão unix
Se eu tentar
cout << string(22, '\n');
Então a minha próxima linha de texto está no fundo do ecrã e quero-a no topo. Como posso limpar a tela e levar o texto de volta para o topo da tela?
Assim digo que tenho isto.
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;
Isto vai limpar o ecrã e depois colocar o mymenu. no fundo do ecrã... Como posso torná-lo tela clara e colocar as perguntas/respostas de volta no topo da tela.
4 answers
Tenta isto: funciona tanto no Linux como no Windows.
cout << "\033[2J\033[1;1H";
Esta é uma sequência de caracteres especiais que se traduzem para limpar o comando do ecrã.
Pode incluir isto numa função como por exemplo clrscr()
dependendo da sua implementação.
Se quiser uma solução que funcione no Windows, Mac & Linux / UNIX, terá de criar a sua própria implementação. Não creio que exista uma única forma de o fazer que funcione em todas as plataformas.
Para Mac / Linux/UNIX/BSD / etc., ncurses fornece uma maneira fácil de fazer isso (http://www.gnu.org/software/ncurses/).
Para o Windows, você provavelmente vai querer olhar para conio.h
(http://en.wikipedia.org/wiki/Conio.h) ou PDCurses ([11]} http://pdcurses.sourceforge.net ou algo parecido. Alternativamente, parece que você pode fazer isso sem bibliotecas de terceiros, de acordo com este artigo Microsoft KB: http://support.microsoft.com/kb/99261.
Infelizmente não existe uma função C/C++ padrão para fazer isto. Você deve ser capaz de escrever uma pequena função que irá construir e trabalhar em qualquer plataforma usando os diferentes métodos que mencionei e algumas diretivas pré-processador.
Se não ter uma maneira conveniente de detectar a plataforma, eu provavelmente recomendaria cmake.
Outra forma seria usar OpenGL, Qt ou SDL, que são plataformas cruzadas e escrever uma consola gráfica. Isto pode ser visto em muitos jogos roguelike, por exemplo Fortaleza anÃ.
Em Unix try
system("clear")
clrscr()
pode não funcionar no UNIX porque alguns compiladores não suportam conio.h