Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
HiperWars

Bloquear caracteres especiais e retornar a um menu ( c++ )

Recommended Posts

e aí galera, eu to com um probleminha... Não no código em si, mas em como atingir os objetivos dele.

To fazendo uma calculadora simples, apenas para praticar o conteúdo estudado recentemente. porém percebi que meu programa trava ao inserir: 

  • números gigantes (100000000 || 900000000)... etc;
  • caracteres especiais (, || . || * || ´ )... etc;
  • letras do alfabeto ( a || b || c)... etc;

Podem me ajudar a solucionar isso? Eu gostaria de bloquear esses caracteres ou fazer o programa parar de travar ao inserir tais números gigantes.

Outra questão é que se eu inserir números grandes até onde é permitido fazer isso, por exemplo em uma operação de soma, tenho retorno de resultado e números digitados em hexadecimal, creio que talvez pelo espaço que o número iria tomar...

 

o código é o seguinte:

#include <iostream>
#include <stdlib.h>
#include <locale.h>

using namespace std;

int main ()
{
    system("title Calculadora // Aula 21 - Operações Condicionais // C++");
    setlocale(LC_ALL, "portuguese");
    double n1, n2;
    int menu, mp, resto1, resto2, restof;

    cout << "Calculadora Versão 2.0" << endl << endl;
    cout << "Menu principal" << endl << endl;
    cout << "[1] Soma" << endl << "[2] Subtração" << endl << "[3] Multiplicação" << endl << "[4] Divisão e Resto" << endl << "[5] Verificação de Par/Impar" << endl << "[6] Todas as operações" << endl << "[7] Sair do Programa" << endl;
    cout << endl << "Digite uma opção: "; cin >> menu;
    //char x;
    if (menu == 1) {
        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;

        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else {
        return 0;
        }
        }
        else if (menu == 2) {
        system("cls");
        cout << "Opção Selecionada: Subtração " << endl;
        cout << "Informe o primeiro número: "; cin >> n1;
         cout << "Informe o segundo  número: "; cin >> n2;
        cout << endl << "O resultado da Subtração entre " << n1 << " - " << n2 << " é igual á: " << n1 - n2 << endl << endl;

        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else {
        return 0;
        }
        }
            else if (menu == 3) {
        system("cls");
        cout << "Opção Selecionada: Multiplicação " << endl;
        cout << "Informe o primeiro número: "; cin >> n1;
         cout << "Informe o segundo  número: "; cin >> n2;
        cout << endl << "O resultado da Multiplicação entre " << n1 << " x " << n2 << " é igual á: " << n1 * n2 << endl << endl;

        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else {
        return 0;
        }
        }
            else if (menu == 4) {
        system("cls");
        cout << "Opção Selecionada: Divisão e Resto " << endl;
        n1 = 0;
        n2 = 0;
        cout << "Informe o primeiro número: "; cin >> n1;
        cout << "Informe o segundo  número: "; cin >> n2;
        resto1 = n1+0;
        resto2 = n2+0;
        restof = resto1 % resto2;
        cout << endl << "O resultado da divisão entre " << n1 << " / " << n2 << " é igual á: " << n1 / n2 << endl;
        cout << "O resto da Divisão é: " << restof << endl << endl;

        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else {
        return 0;
        }
        }
        else if (menu == 5)
            {
        system("cls");
        cout << "Opção Selecionada: Verificação de Par/Impar " << endl;
        n1 = 0;
        cout << "Informe um número: "; cin >> n1;
        resto1 = n1+0;
            if(resto1 % 2 == 0) {
                cout << "O número " << resto1 << " é PAR." << endl << endl;
            } else { cout << "O número " << resto1 << " é IMPAR." << endl << endl; }

        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else if (mp == 2) {
        return 0;
        }
        else { return 0;}
            }
            else if (menu == 6) {
        system("cls");
        cout << "Opção Selecionada: Todas as Operações " << 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;
        cout << endl << "O resultado da Subtração entre " << n1 << " - " << n2 << " é igual á: " << n1 - n2 << endl << endl;
        cout << endl << "O resultado da Multiplicação entre " << n1 << " x " << n2 << " é igual á: " << n1 * n2 << endl << endl;
        cout << endl << "O resultado da divisão entre " << n1 << " / " << n2 << " é igual á: " << n1 / n2 << endl;
        resto1 = n1+0;
        resto2 = n2+0;
        restof = resto1 % resto2;
        cout << "O resto da Divisão é: " << restof << endl << endl;
        if(resto1 % 2 == 0) {
                cout << "O número " << resto1 << " é PAR." << endl << endl;
            } else { cout << "O número " << resto1 << " é IMPAR." << endl << endl; }
        if(resto2 % 2 == 0) {
                cout << "O número " << resto2 << " é PAR." << endl << endl;
            } else { cout << "O número " << resto2 << " é IMPAR." << endl << endl; }


        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else {
        return 0;
        }
        }
         else if (menu == 7) {
            system("cls"); cout << "Obrigado por utilizar nossa ferramenta!" << endl << endl; system("pause"); return 0;}
            else if (menu >= 8 || menu <= 0){
                system("cls"); return main();}
                else { return 0;
            }
    system("pause");
    return 0;
}

Outra coisa que eu gostaria de saber é como colocar para repetir esse submenu...

 

else if (menu == 5)
            {
        system("cls");
        cout << "Opção Selecionada: Verificação de Par/Impar " << endl;
        n1 = 0;
        cout << "Informe um número: "; cin >> n1;
        resto1 = n1+0;
            if(resto1 % 2 == 0) {
                cout << "O número " << resto1 << " é PAR." << endl << endl;
            } else { cout << "O número " << resto1 << " é IMPAR." << endl << endl; }

        cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else if (mp == 2) {
        return 0;
        }
        else { return 0;}
            }

 

Eu pensei em fazer assim:

 

else if (menu == 5) {
void repetir();
... //codigo
}
cout << "[1] Retornar ao Menu Principal || [2] Sair do Programa: || [3] Repetir Operação "; cin >> mp;
        if (mp == 1){
            system("cls"); return main();
        } else if (mp == 2) {
        return 0;
        } else if (mp == 3) { system("cls"); return repetir();}

Mas eu não sei como fazer isso funcionar... acho que conseguem entender que quero digitar 3 e retornar ao menu 5...

Editado por HiperWars

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






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

×