Problema com o buffer usando o delimitador de string
Estou tendo um problema na limpeza do buffer após usar o delimitador de string. Testem o código seguinte:
#include <stdio.h>
int main()
{
char Test[99];
do
{
scanf(" %3s",Test);
printf("%s\n",Test);
} while( 1 );
}
Eu desejo coletar apenas 3 caracteres da string digitada, e está saindo como planejado, mas o resto da string que não foi coletada fica no buffer, ocasionando o problema que vocês já deve ter percebido. :upset:
Utilizando o operador de supressão "*" no scanf() não dá muito certo, utilizando o fflush(stdin) resolve, pois ela limpa o buffer todo, mas estou abolindo essa função da minha vida. O que eu devo fazer? Se puderem me ajudar agradeço muito.
Discussão (7)
Carregando comentários...