INFO: rewind(stdin) Clears Keyboard Buffer

Ansvarsfriskrivning för KB-innehåll som inte uppdateras

Den här artikeln skrevs om produkter som Microsoft inte längre erbjuder support för. Därför erbjuds denna artikel "i befintligt skick" och kommer inte att uppdateras.

Summary


To clear the keyboard buffer in Microsoft C use the function rewind() with the stream STDIN, which is associated with the keyboard by default. The function fflush() clears the buffers that C programs use for stream level I/O. It does not clear the device buffer. The following is an example that shows what happens when the keyboard buffer is not cleared, and then how to clear it:

Sample 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' );
}
Egenskaper

Artikel-id: 41159 – senaste granskning 17 juni 2014 – revision: 1

Feedback