flush input buffer?
Nick Sabalausky
a at a.a
Sat Oct 18 13:18:37 PDT 2008
"Michael P." <baseball.mjp at gmail.com> wrote in message
news:gddeog$26je$1 at digitalmars.com...
> Nick Sabalausky Wrote:
>
>> "Michael P." <baseball.mjp at gmail.com> wrote in message
>> news:gdd02h$1uui$1 at digitalmars.com...
>> > Okay, so I'm sure if flushing the input buffer is what I want, or if
>> > that
>> > even makes sense, so I'll say what I'm trying to do first to see if
>> > that's
>> > what I want.
>> > So, I made this program where you specify the number of digits in a
>> > number
>> > you want to remember. Then, it ask you how many questions.
>> > Anyways, a number will show up. Then, you have 4 seconds to remember.
>> > Then, 30 lines are skipped as my "clearing of the screen". Sleep
>> > another
>> > second.
>> > You are then asked to type in the number you saw.
>> > The problem I have is that the user can just type in the number while
>> > they
>> > see it, and what the typed will show up when the prompt comes up.
>> > What I want to do is "flush the input buffer" just before I request for
>> > input so the user can no longer type in the number while they see it.
>> >
>> > -Michael P.
>>
>> I'm not sure what lib or function you're using to read the input, but
>> there
>> should be some way to do an asynchronous read from the input buffer to
>> read
>> input *only* if input already exists and just sinply return nothing
>> instead
>> of waiting if no input exists. Then you could do something like this:
>>
>> do
>> {
>> inputDataToThrowAway = AsyncRead();
>> } while(data was actualy read);
>> output("Please enter your answer");
>> waitForInputAndReadIt();
>>
>>
>
> Oh yeah, forgot to say that I am using din.readf() for input.
Ok, I took a look at the phobos documentation for that. Looks like this
should work (I use Tango instead of phobos, so I haven't tested it.
Hopefully it'll work):
void clearInputBuffer()
{
while(din.available() > 0)
{
din.getc();
}
}
Calling that function before you read the user's input *should* do what
you're looking for.
More information about the Digitalmars-d-learn
mailing list