Ir ao conteúdo
  • Cadastre-se
HiperWars

é possivel limpar parte da tela? c++

Recommended Posts

Galera to com uma dúvida... é possível limpar PARTE da tela? 

 

Eu criei um programinha... uma mini calculadora onde se o número digitado não for uma das opções definidas, ele retorna a leitura da variável em questão... 

 

porém isso acaba repetindo o trecho várias vezes, e eu não gostaria de perder o resultado acima... 

 

Segue o código e a imagem do que acontece em duas situações: 

 

if (menu == 1) {
        loop:
        system("cls");
        cout << "Opção Selecionada: SOMA " << endl;
        cout << "Informe o primeiro número: "; cin >> n1;
        cout << "Informe o segundo  número: "; cin >> n2;
        cout << endl << "O resultado da soma entre " << n1 << " + " << n2 << " é igual á: " << n1 + n2 << endl << endl;
        loop_submenu1:
        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa || [3] Repetir a Operação: "; /*loop_submenu1:*/ cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else if (mp == 2) {
         system("cls"); cout << "Obrigado por utilizar nossa ferramenta!" << endl;  return 0;
        } else if (mp == 3) { system("cls"); goto loop; }
        else { goto loop_submenu1; }
        }

Repetição - Primeiro Caso C++.PNG

Como podem observar, senão for uma das opções definidas 1, 2, 3, o programa irá repetir o submenu.

 

Mas eu gostaria de apagar esse submenu e manter o resultado acima, se eu apertar 4, 5, 6... etc... Eu gostaria apenas que apagasse esse submenu e repetisse ele. Como se eu desse um system("cls"); em apenas aquela parte do código.

 

Em um segundo caso, é quando eu coloco a repetição apenas na variável, como segue abaixo:

 

if (menu == 1) {
        loop:
        system("cls");
        cout << "Opção Selecionada: SOMA " << endl;
        cout << "Informe o primeiro número: "; cin >> n1;
        cout << "Informe o segundo  número: "; cin >> n2;
        cout << endl << "O resultado da soma entre " << n1 << " + " << n2 << " é igual á: " << n1 + n2 << endl << endl;
        //loop_submenu1:
        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa || [3] Repetir a Operação: "; loop_submenu1: cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else if (mp == 2) {
         system("cls"); cout << "Obrigado por utilizar nossa ferramenta!" << endl;  return 0;
        } else if (mp == 3) { system("cls"); goto loop; }
        else { goto loop_submenu1; }
        }

Repetição - Segundo Caso C++.PNG

 

Como podem observar, apenas a variável mp(do submenu) está se repetindo. Como faço para apagar apenas o número inserido lá em cima e repetir o valor da variável pelo comando "cin" na mesma linha?

 

ex: [1] Ret.... [2] Sair... [3] Rep... : 4 

se (mp >= 4) { limpe apenas o número (mp) 4, e permita ao usuário digitar novamente um número válido na mesma linha }

 

foi um exemplo grosseiro não seguindo as regras, foi apenas para vocês entenderem o que eu quero.

 

Ah sim, e outra coisa... Existe o << endl; Para pular uma linha... correto? porém, existe algum comando que retorne a linha?

 

Se vocês observarem, quando o usuário atribui um valor a variável mp(do submenu) ela automaticamente pula a linha, mesmo não existindo um endl na linha em questão... É possivel retornar a mesma linha para inserir ao lado o próximo número que o usuário digitar?

 

Podem me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×