O que o fflush faz na programação C

O que o fflush faz na programação C
Na programação C, o fflush (stdin) A função é usada para limpar a memória do buffer de entrada de quaisquer dados que ainda possam ser armazenados. Faz isso liberando qualquer memória associada ao fluxo de entrada padrão, conhecido como stdin, que é a entrada padrão usada para ler quaisquer dados dos argumentos da linha de comando ou um teclado. Isso significa que quaisquer dados restantes que não foram processados ​​são descartados e quaisquer dados da última operação de entrada bem -sucedidos podem ser usados.

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.