Microsoft KB Archive/41159

= INFO: rewind(stdin) Clears Keyboard Buffer =

Article ID: 41159

Article Last Modified on 12/11/2003

-

APPLIES TO

 The C Run-Time (CRT), when used with:  Microsoft Visual C++ 1.0 Professional Edition

 Microsoft Visual C++ 1.5 Professional Edition

 Microsoft Visual C++ 1.51

 Microsoft Visual C++ 1.52 Professional Edition</li></ul>

 Microsoft Visual C++ 1.0 Professional Edition</li></ul>

 Microsoft Visual C++ 2.0 Professional Edition</li></ul>

 Microsoft Visual C++ 2.1</li></ul>

 Microsoft Visual C++ 4.0 Standard Edition</li></ul>

 Microsoft Visual C++ 5.0 Standard Edition</li></ul>

 Microsoft Visual C++ 6.0 Service Pack 5</li></ul> </li></ul>

-

<div class="notice_section">

This article was previously published under Q41159

<div class="notice_section">

<div class="summary_section">

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


 * 1) include <stdio.h>

void main(void) {  int ch ;

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

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

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

rewind( stdin ); puts( &quot;You must enter another char because of the rewind(stdin)&quot; ); ch = getchar; putchar( ch ); putchar( '\n' ); }

Additional query words: 8.00 8.00c 9.00 9.10

Keywords: kbinfo kbcrt kbcode KB41159

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.