当我写一个程序,并使用 -如何在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