INFO : rewind(stdin) efface la mémoire tampon clavier

Clause d’exclusion de responsabilité pour le contenu périmé de la base de connaissances

Cet article a été écrit au sujet des produits pour lesquels Microsoft n’offre plus de soutien. Par conséquent, cet article est offert « tel quel » et ne sera plus mis à jour.

Résumé


Pour effacer la mémoire tampon du clavier dans Microsoft C utilisez la fonction rewind() avec le flux de données STDIN, lequel est associé le clavier par défaut. La fonction fflush() efface les mémoires tampons qui utilisent des programmes C de niveau de flux d’e/s. Elle n’efface pas la mémoire tampon du périphérique. Voici un exemple qui illustre ce qui se produit lorsque la mémoire tampon du clavier n’est pas désactivé, et puis comment la désactiver :

Exemple de Code

/* Compile options needed: none*/ 

#include <stdio.h>

void main(void)
{
int ch ;

puts( "Input two or more chars. One is read now." );
ch = getchar();
putchar( ch );
putchar( '\n' );

puts( "The next char is taken from stdin." );
ch = getchar( );
putchar( ch );
putchar( '\n' );

rewind( stdin );
puts( "Input two or more chars. One is read now." );
ch = getchar();
putchar( ch );
putchar( '\n' );

rewind( stdin );
puts( "You must enter another char because of the rewind(stdin)" );
ch = getchar( );
putchar( ch );
putchar( '\n' );
}
Propriétés

ID d'article : 41159 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires