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

Fgets dando erro no algoritmo


Rodrigo Rech

Pergunta

estou usando o seguinte algoritmo : 

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

int main()
{
    int num, g=0, fase, horario[2], codigo; //g = gerador de códigos de cada turma
    char curso[30];
    scanf("%i", &num);
    switch(num){
       case 1:
          codigo=g;
          fgets(curso,30,stdin);//                                                <<FGETS AQUI>>
          scanf("%i", &fase);
          printf("escreva o horario de tal maneira: 13 30, onde 13 são as horas e 30 os minutos.");
          scanf("%i", &horario[0]);  //horas
          scanf("%i", &horario[1]);  //minutos
          printf("%i %i %i:%i", codigo, fase, horario[0], horario[1]);
          //fazer scanf do char com um looping


          g++;// deve ser a ultima linha do case1 EXCLUIR ISSO DEPOIS

    }
    return 0;
}

 

o programa só funciona quando tiro o fgets, ao coloca-lo ele muda completamente o printf pra lixo, não consigo entender o porque 

 

 

Editado por Rodrigo Rech
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

meu caro, você tem problema de "lixo" no buffer de entrada padrão. De uma olhada aqui: http://www.clubedohardware.com.br/forums/topic/1204927-condição-while-em-c/#comment-6626978

Lhe recomendo buscar no google "como limpar o buffer de entrada em C".
 

Se depois disso continuar com duvidas pergunte aqui. Leve seu tempo para aprender sobre o buffer e como limpa-lo pois sem isso é muito provável que você tenha sempre problemas na hora de ler strings e chars de forma consecutiva a outros tipos de dados.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 01/07/2017 at 17:52, vangodp disse:

meu caro, você tem problema de "lixo" no buffer de entrada padrão. De uma olhada aqui: http://www.clubedohardware.com.br/forums/topic/1204927-condição-while-em-c/#comment-6626978

Lhe recomendo buscar no google "como limpar o buffer de entrada em C".
 

Se depois disso continuar com duvidas pergunte aqui. Leve seu tempo para aprender sobre o buffer e como limpa-lo pois sem isso é muito provável que você tenha sempre problemas na hora de ler strings e chars de forma consecutiva a outros tipos de dados.

valeu ae

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,4k
×
×
  • Criar Novo...