Eae Pedro! Antes de tudo, é necessário saber que para fazer melhores manipulações e conseguir distinguir uma letra de um número, nada melhor que a biblioteca CTYPE. Através dela é possível diferenciar um número de um simbolo ou de uma letra, além de varias modificações interessantes para sua calculadora. Enfim, vamos lá... Respondendo a 1: Use um filtro, uma boa alternativa é usar o "isdigit" (Faz parte da biblioteca CTYPE). O "isdigit" irá te mostrar se o valor passado pelo usuário é um número. if (isdigit (VARIAVEL))
{
< SE A VARIAVEL NÃO FOR UM NÚMERO, EXECUTA UM BLOCO DE COMANDOS >
}
else
< SE FOR UM NÚMERO, EXECUTA OUTRO BLOCO DE COMANDOS >
Quanto ao digitar o número novamente, use um laço, o WHILE por exemplo.
Respondendo a 2: O Jeito mais simples de se fazer:
#include <iostream>
using namespace std;
int main (void)
{
string opcao;
cout << "DIGITE 'Q' PARA SAIR: \a";
cin >> opcao;
if (opcao == "Q" || opcao == "q" )
{
exit(0);
}
else
continue;
return 0;
} Espero ter ajudado! :)