INFO: rewind(stdin) Clears Keyboard Buffer

Apturēta KB satura atruna

Šajā rakstā ir iekļauta informācija par produktiem, kuriem korporācija Microsoft vairs nepiedāvā atbalstu. Tāpēc šis raksts tiek piedāvāts “tāds, kāds tas ir”, un tas vairs netiks atjaunināts.

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' );
}
Rekvizīti

Raksta ID: 41159. Pēdējo reizi pārskatīts: 2014. gada 17. jūn.. Pārskatījums: 1

Atsauksmes