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.
#1Comentá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
Cassio
#2Comentário enviado por pandegas em 14/02/2005 - 18:03h
Costumava usar fflush tb, mas valew pela dica
#3Comentário enviado por marcelhb em 04/11/2005 - 22:05h
#4Comentário enviado por jochan em 14/12/2005 - 14:46h
Muito legal, vai me ajudar bastente no meu projeto de C++ ... =)
#5Comentá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:
#6Comentário enviado por f_Candido em 24/09/2007 - 21:07h
Muito Boa. Apesar de funcionar apenas no Linux, ajuda bastante, pra quem está migrando.
Abraços
#7Comentário enviado por p@b10 em 27/09/2007 - 15:54h
Eu leio assim
scanf("%c%*c", &Nome_da_variavel);
o "%*c" é como se o scanf esperasse algo para ler e jogar no lixo ^^, (como o enter por exemplo)
espero ter ajudado!!!
Abraços
#8Comentário enviado por mlegidio em 24/10/2007 - 00:58h
acabei de aprender uma bem legal...
scanf(" %c", &vari);
notem q tem um espaço entre as aspas e o percent.
vi essa dica aki no VOL.
#9Comentário enviado por mecsys em 13/01/2011 - 19:07h
Boa dica, me ajudou muito. Estava tentando usar fflush(stdin), mas não estava adiantando.
Valeu!
Preferências de cookies
Usamos cookies essenciais para manter o site funcionando e Google Analytics para métricas de audiência. Cookies de anúncios só serão carregados se você permitir.
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