Jump to content

Dúvida com um código em C


Thiago Suriani

Recommended Posts

Não estou conseguindo realizar o loop quando entro na opção 1 do menu após terminar de preencher tudo, queria que ao coloca "s" ele reiniciasse o cadastro.

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

int main ()
{
    setlocale(LC_ALL, "portuguese");
    char sexo[2], nome[30], sobrenome[30], iniciar, novamente;
    int idade, opcoes;
    long long int CPF, RG;
    char celular[11];

    do
    {

        printf("******* Menu de Opções *******\n\n");
        printf("** 1 ** Cadastro de Dados: ****\n");
        printf("** 2 ** Sair: ****\n\n");

        printf("Escolha uma das opções acima: ");
        scanf("%i", &opcoes);
        printf("\n");

        do
        {

            switch(opcoes)
            {
            case 1:

                printf("Você escolheu a opção 1 - Cadastro de Dados: \n");

                printf("\nNome: ");
                scanf("%s", &nome);
                fflush(stdin);
                printf("\n");

                printf("Sobrenome: ");
                scanf("%s", &sobrenome);
                fflush(stdin);
                printf("\n");

                printf("Idade: ");
                scanf("%i", &idade);
                printf("\n");

                printf("Sexo: ");
                scanf("%s", &sexo);
                printf("\n");

                printf("CPF: ");
                scanf("%lld", &CPF);
                printf("\n");

                printf("RG: ");
                scanf("%lld", &RG);
                printf("\n");

                printf("Celular: ");
                scanf("%s", &celular);
                fflush(stdin);
                printf("\n\n");

                printf("**Ficha completa:**\n\n");
                printf("Nome Completo: %s %s\n", nome, sobrenome);
                printf("Idade: %i\n", idade);
                printf("Sexo: %s\n", sexo);
                printf("CPF: %lld\n", CPF);
                printf("RG: %lld\n", RG);
                printf("Celular: %s\n", celular);
                printf("\n\n Deseja realizar uma nova inclusão? (s ou n): ");
                scanf("%c", novamente);

                break;

            case 2:
                printf("Você escolheu a opção 2 - Sair: \n");
                printf("\nFinalizando o programa..\n");
                return 0;

                break;

            default:
                if(opcoes >= 3){
                    printf("Valor Inválido!\n");
                    return 0;
                }
            }
        }
        while(novamente == 's');

             if(novamente == 'n')
                {
                    printf("\n\nRetornando ao menu de opções.. \n\n", opcoes);
                    return 0;
                }
    }
    while(opcoes != 2);
    return 0;
}

Creio que devo ter errado em alguma chave ou posição do while, mas não consigo arrumar, se alguém puder ajudar eu agradeço!!

Link to comment
Share on other sites

Ainda de mais nada, essas duas coisas estão erradas:

setlocale( LC_ALL, "portuguese" );
fflush( stdin );

Se setlocale() "ajusta (set) o local (locale)", então, existe um lugar no mundo chamado "português"?

fflush() "despeja" (flushes) streams de saída apenas.

Quanto ao resto... um pouco de atenção ao que foi feito seria interessante!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...