istream buffer

int n;
cin >> n;

As the above code, I have declarced an interger variables n.
I try to input the value of n by cin. However, when I try to input a chracter as the input prompt. An error occur. The value of n is not changed.
I know that I can detect the invalid input using the cin.good().... I also try to use the cin.ignore() to delete the invalid character input from istream but fail to do this. Then how can I do to flush the istram so that the character from istream?
matchzAsked:
Who is Participating?
 
ohellConnect With a Mentor Commented:
Looks to me like you have an eof condition. you make sure that
cin.rdstate() & ~eofstate

If the eof is not true, you can flush the stream by cin.tie()->flush()

Hope this helps
0
 
matchzAuthor Commented:
Then can I use cin.flush() ?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.