Limpando o buffer do teclado em C
Dica publicada em C/C++ / Introdução
Limpando o buffer do teclado em C
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:
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 */
}
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.
Espero que essa dica ajude em alguma coisa.
Falow!
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
Cassio