Ir ao conteúdo
  • Cadastre-se

é possivel limpar parte da tela? c++


HiperWars

Posts recomendados

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?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...