如何清除c ++中的输入流?

问题描述

| 当我编写程序并使用-
cout << \"A:\"; 
cin >> string_var; 
cout << \"B\"; 
cin >> string_var2; 
如果键盘上的两个输入之间有空格(例如 如果控制台显示: A:_(等待输入),我键入
a a
,第一个
a
进入
string_var
,第二个进入
string_var2
。如何刷新输入流?     

解决方法

        代替
cin >> string_var
,使用
cin.getline(string_var,256,\'\\n\')
。您当前的读取输入法只能读取到第一个空格。使用getline方法最多可以读取\\ n字符,即用户按下Enter时的字符。     ,        您可以像这样使用
cin.get()
cout << \"A: \"; 
cin >> string_var; 
// clear remaining stream input
while(cin.get() != \'\\n\'); 

cout << \"B: \"; 
cin >> string_var2;