De acordo com o padrão C, usando fflush (stdin) é um padrão de comportamento pouco claro. Certos compiladores, como o Microsoft Visual Studio, permitem isso, embora. Mesmo ao aceitar um número inteiro com espaços e discutir a entrada anterior para o mesmo, um buffer não é limpo sobre a próxima entrada. Este problema é resolvido descartando o mesmo fluxo e buffer com fflush (stdin).
Vejamos um exemplo:
#incluir
#incluir
int main ()
char S [20];
int i;
para (i = 0; i<3; i++)
printf ("Digite uma string \ n");
scanf ("%[^\ n] s", s);
printf ("%s \ n", s);
fflush (stdin);
retornar 0;
O código acima leva uma única entrada e fornece o mesmo resultado. O buffer é então limpo usando o fflush (stdin) função, e então a próxima entrada é inserida e impressa e assim por diante.
Saída
O que o fflush (stdin) faz na programação C?
O fflush (stdin) A função é usada com operações de entrada para garantir que os dados sejam processados corretamente e nada é deixado para trás no buffer de entrada. Na programação C, todas as operações de entrada deixarão alguns dados para trás no buffer de entrada. Esses dados são deixados lá até o programa optar por processá -los, mas isso pode causar problemas inesperados. Por exemplo, se um programa estiver esperando um número como uma entrada, mas o usuário acidentalmente digita uma carta, os dados deixados no buffer ainda serão processados como a próxima entrada. Isso pode fazer com que o programa trava ou os dados sejam analisados incorretamente.
Usando o fflush (stdin) A função pode ajudar a impedir que isso aconteça. A função limpa o buffer manualmente e, portanto, todos os dados restantes são removidos dela. Sem essa função, o computador ainda processaria os dados restantes como a próxima entrada, mas agora qualquer erro pode ser capturado, e o programa pode ser feito para promover o usuário para a entrada correta.
Além de usá -lo para limpar os buffers de entrada, o fflush (stdin) A função também pode ser usada para lavar fluxos de saída. Isso é útil para programas que exigem uma saída em tempo real ou exibem o progresso de um programa. Ao lavar o fluxo de saída, a saída mais recente pode ser exibida imediatamente. Caso contrário, o programa precisaria esperar até que todo o fluxo esteja cheio antes que possa ser exibido.
Conclusão
O fflush (stdin) A função é uma parte essencial da programação C. Ao liberar os dados restantes dos buffers de entrada, isso ajuda a impedir que entradas inesperadas desça do programa e causassem erros. Além disso, ele pode ser usado para lavar fluxos de saída que podem ser úteis para exibir informações em tempo real. Embora não seja usado com frequência, o fflush (stdin) A função é uma parte importante do kit de ferramentas de qualquer programador.