h*******n 发帖数: 2052 | 1 好像如果前面用了cin, 后面再用cin.get(), 就不work了, 是什么原理呢? 如何解
决这个问题呢? |
k**f 发帖数: 372 | 2
You'd better provide a concrete example showing what is not working.
【在 h*******n 的大作中提到】 : 好像如果前面用了cin, 后面再用cin.get(), 就不work了, 是什么原理呢? 如何解 : 决这个问题呢?
|
h*******n 发帖数: 2052 | 3 很简单一个程序:
#include
using namespace std;
int main()
{
int a=2;
//cin>>a;
cout<
cin.get();
return 0;
}
这里cin.get();的作用是让屏幕保持原来的状态以便看到a的输出值。(我用的是Dev-C
++)
如果改成
#include
using namespace std;
int main()
{
int a;
cin>>a;
cout<
cin.get();
return 0;
}
cin.get();就不work了, 程序直接就返回了, 没有在cin.get()处等待。 据说是因为
前面有一个cin语句。 |
a**a 发帖数: 416 | 4 试试先把cin的缓冲区清空?
【在 h*******n 的大作中提到】 : 很简单一个程序: : #include : using namespace std; : int main() : { : int a=2; : //cin>>a; : cout<: cin.get(); : return 0;
|
t****t 发帖数: 6806 | 5 let's say you input "1" for cin>>a
you have to add an "enter" after "1"; cin>>a only reads "1", so cin.get()
reads "enter"
you have to ignore that first, say
cin.ignore(numeric_limits::max(), '\n');
【在 h*******n 的大作中提到】 : 很简单一个程序: : #include : using namespace std; : int main() : { : int a=2; : //cin>>a; : cout<: cin.get(); : return 0;
|
h*******n 发帖数: 2052 | 6 Thank you all for the information! |