Microsoft KB Archive/36397

= Must Use A$=INKEY$ after SLEEP to Clear Keyboard Buffer =

Article ID: 36397

Article Last Modified on 8/16/2005

-

APPLIES TO


 * Microsoft QuickBasic 4.0
 * Microsoft QuickBASIC 4.0b
 * Microsoft BASIC Compiler 6.0
 * Microsoft BASIC Compiler 6.0b
 * Microsoft BASIC Professional Development System 7.0

-



This article was previously published under Q36397



SUMMARY
The SLEEP statement was introduced in QuickBasic Version 4.00b and in Microsoft Basic Compiler Version 6.00 for MS-DOS and MS OS/2. SLEEP does not clear the buffer when a key is pressed. Therefore, the next input statement will read the pressed keys to clear prior SLEEP commands.

This information applies to Microsoft QuickBasic Versions 4.00b and 4.50 for MS-DOS, to Microsoft Basic Compiler Versions 6.00 and 6.00b for MS-DOS and MS OS/2, and to Microsoft Basic PDS Version 7.00 for MS-DOS and MS OS/2.



MORE INFORMATION
The following code example demonstrates the problem with a workaround: CLS FOR i = 1 TO 5 PRINT &quot;press a key please&quot; SLEEP ' If you want to clear the buffer, insert the following statement: '  x$ = INKEY$ NEXT CLS ' If you do not clear the buffer, this INPUT prompts with a print ' of the 5 characters pressed in the FOR loop above, and the value of '  a$ will be those 5 characters plus any entered at the prompt. INPUT a$ PRINT a$

Additional query words: QuickBas BasicCom

Keywords: KB36397

-

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

© Microsoft Corporation. All rights reserved.