Ir para conteúdo

Dúvida com um código em C


Thiago Suriani

Posts Recomendados

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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...