c++中cin,cin.getline混淆使用问题

cin会以空格,Tab,回车(换行符)为标志读取缓冲区的数据

cin.getline 在适当的参数下,可以读取一行。

但 两者在混淆使用的时候,需要注意:

cin会被标识符,留在缓冲区里。

cin.getline,会读取标识符。

cin>>a;

cin.getline(temp,100,'\n');

cout<<a<<endl;

cout<<temp<<endl;

但输入

1+enter;

aaa+enter;

预期想要输出的是:

1

AAA

但实际结果,却为:

1


造成这样的原因是因为:

在缓冲区里面,1,‘\n',AAA,'\n'

当1被a读取,其中的第一个‘\n',被cin.getline(temp)读取,输出空行。


发布了18 篇原创文章 · 获赞 0 · 访问量 354

猜你喜欢

转载自blog.csdn.net/msaker/article/details/80495998