I believe you should do a "cin>>ws;"
the "ws" means white space and should clear the buffer after you do
the getch();
On Tue, 27 Jul 2004 01:17:24 GMT, Ash <furroash@nb.sympatico.ca>
wrote:
[color=blue]
>John Harrison wrote:[color=green]
>> On Wed, 21 Jul 2004 20:31:04 GMT, voidstar <voidstar@tin.it> wrote:
>>[color=darkred]
>>> Hi, I have the following problem:
>>>
>>> I use "getch" to monitor keypresses and the I use "cin" to input a
>>> string.
>>>
>>> When I type in 'y', the 'y' character appears, so I need to hit backspace
>>> before typing the string.
>>>
>>> c = getch();
>>> cin >> str;
>>>
>>> Please help me!
>>> Thanks in advance
>>> voidstar[/color]
>>
>>
>> getch is not part of standard C++, cin is part of standard C++. If you
>> try an mix the two then the results are going to be unpredictable.
>> Basically don't do it.
>>
>> Standard C++ has no way of monitoring keypresses, so if you need to do
>> this then you should forget about using standard C++ for any console
>> input or output.
>>
>> john
>>[/color]
>All true, but I found that it is compiler dependant. For example, in
>Borland's compiler:
>
>ch = getch();
>switch(ch){
> //select stuff
>}
>cin >> string; //or even cin.getline(const char[], int)
>
>after pressing a button to be used in the switch() statement, that char
>would be placed at the beginning of the string's array. However, using
>Bloodshed's Dev-C++ IDE, it seems to 'clear the buffer'. I have, however
>heard of functions that do this. I think
http://www.cplusplus.com, but
>I'm not sure.[/color]