INFO: rewind(stdin) Clears Keyboard Buffer

Ansvarsfraskrivelse i forbindelse med udgået indhold i Knowledge Base

Denne artikel beskriver produkter, som Microsoft ikke længere yder support til. Artiklen foreligger derfor 'som den er og forefindes' og opdateres ikke længere.

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

Artikel-id: 41159 – Seneste udgave 17. jun. 2014 – Udgave 1

Feedback