當我寫一個程序,並使用 -如何在C++中清除輸入流?
cout << "A:";
cin >> string_var;
cout << "B";
cin >> string_var2;
如果在鍵盤上的兩個輸入之間的空間(前 如果控制檯顯示:
答:_(等待輸入)和我打a a
,第一a
會去string_var
和第二會去string_var2
。如何刷新輸入流?
當我寫一個程序,並使用 -如何在C++中清除輸入流?
cout << "A:";
cin >> string_var;
cout << "B";
cin >> string_var2;
如果在鍵盤上的兩個輸入之間的空間(前 如果控制檯顯示:
答:_(等待輸入)和我打a a
,第一a
會去string_var
和第二會去string_var2
。如何刷新輸入流?
的cin >> string_var
相反,使用cin.getline(string_var, 256, '\n')
你。目前的閱讀輸入法只能讀到第一個空格。使用getline方法將讀取用戶點擊輸入時的\ n字符。
好的謝謝。我會用它來代替。 – someguy 2011-06-14 04:55:27
我以爲'istream :: getline()'方法只能用於C風格的字符串('char *'):http://www.cplusplus.com/reference/iostream/istream/getline/你想要全局' getline(std :: istream&,std :: string&)'在'
@Chris無論哪種方式應該工作。我只是假設string_var是一個char *。 – marchica 2011-06-14 05:27:32
您可以使用cin.get()
這樣的:
我已經使用了功能cin.ignore()和cin.clear無濟於事,但我不知道如果我用他們以正確的方式.. – someguy 2011-06-14 04:44:06
@someguy - 我不知道答案,但是有一個陳述'cout <<「B」;'在兩者之間執行。 – Mahesh 2011-06-14 04:47:19
我知道,但仍然去第二個string_var2 – someguy 2011-06-14 04:48:02