Chamada de função ignora a função da instrução
-
21-12-2019 - |
Pergunta
sempre que eu chamar essa função ignora sobre o fgets declaração de dentro dele.
void getString(char *str){ /* Read a string from the keyboard */
fprintf(stdout,"Please enter a string: ");
fgets(str,MAX_STRING_LEN,stdin);
}
aqui está a chamada de função
if(strcmp(cmd,"new")==0){ /* new string command */
getString(current);
}
Solução
Provavelmente você está misturando uso de scanf() em outro lugar no seu programa e fgets().Usar fgets() para todos a sua entrada, sempre para uma seqüência de caracteres, que, se necessário, usar sscanf() para converter a seqüência de caracteres em outros tipos de dados.
Veja o comp.lang.c FAQ descreve isso em mais detalhe:
Outras dicas
A saída de fprintf(3) é armazenada em buffer.Você precisa liberar memória intermédia para forçar o prompt antes de tentar ler a entrada.O stderr
canal é geralmente sem buffer, de modo que você pode escrever para que sem liberar manualmente.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow