Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com switch em C


aprendiz_sabenada

Pergunta

Olá pessoal joia?

Estou tendo um erro que não consigo entender.

Fiz esse esboço

 int chama(){
    int op;
    printf("Escolha uma opção:\n 1 - Escolher \n 2 - Sair \n");
    scanf("%i", &op);
    switch(op){
        case 1:
            escolha();
            break;
        case 2:
            break;
    }
   }

int escolha(){
    char nome[20];
    printf("Digite o nome da pessoa:\n");
    fgets(nome, 20, stdin);
    printf("%s", nome);
   }

int main(int argc, char** argv) {
    chama();
    return (EXIT_SUCCESS);

}

Se na função main eu chamo "chama" quando escolho a opção 1 no swtich não consigo digitar nem imprimir o nome. O programa fecha automático.

Mas se na função main eu chamo "escolha" então consigo escrever e imprimir normalmente o nome. Então o que estou fazendo de errado? Alguém poderia ajudar?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

você deveria ler esse post incluindo o comentário de todos os usuários, certamente vai te facilitar e muito a vida na programação.
http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/

Certamente seu problema é que você tem lixo no buffer. você pode buscar no google "Como limpar o buffer em C" ou aprender a usar o especificador %*c para solucionar o problema, nesse link acho que explica.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

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

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...