每次cin>>之后,缓冲区内会多出来一个回车符,这个回车符对cin>>不会有影响,但是对于cin.getline()函数和getline()函数就会产生影响,导致还不等你输入,就直接把输入语句执行语句运行结束了,直接去运行后面的程序了;解决方法就是养成习惯,每次cin>>之后,都加一句“cin.get();"或者“cin.ignore();”,而且这两句也不会影响连续多次cin>>的正常工作。

特别提示,在普通语句中可能很容易发现cin>>后面使用了cin.getline()或者getline(),但是在存在循环时就很容易忽略cin>>出现在cin.getline()函数和getline()函数的前面,因为一次循环执行结束之后,多出来的回车符还是会在缓冲区里,还是会对接下来的输入产生影响。

---------------------
作者:Leonardo Liu
来源:CSDN
原文:https://blog.csdn.net/leowinbow/article/details/82190631
版权声明:本文为博主原创文章,转载请附上博文链接!