Eu não sei quanto à vocês, mas comigo já aconteceu muitas
vezes de fazer um programa para ler um caracter ou uma string,
aí quando chegava no local de ler a string ou o caracter passava
direto sem ler a string ou o caracter.
Pois bem, quando isso acontece é porque o buffer do teclado
contém sujeira e é bom da uma limpada. Para isso vamos usar:
#include<stdio_ext.h>
main()
{
__fpurge(stdin);
/* ...
restante do programa */
}
É bom você usar esse comando antes de ler qualquer coisa.
Detalhe: declarando stdio_ext.h não precisa declarar
stdio.h. E só funciona no Linux.
[1] Comentário enviado por coyote em 26/05/2004 - 14:46h
Uma outra opção eh utilizar o fflush(stdin)
que tambem pode ser utilizado para atualizar a tela durante um loop , fflush(stdout).
esta contido em stdio.h e funciona tanto no linux como no windows
[5] Comentário enviado por ihtraum em 03/04/2006 - 20:52h
não é aconselhável usar essa biblioteca.
visto que ela não é portátil. só funciona no linux.
devem existir outras alternativas.
ou melhor, existem, vejam essa de nosso amigo rogério: