logo头像

不忘初心,奋力前行

C++中的cin, cin.getline, getline等混合使用时不能输入直接执行下一行的问题

本文于554天之前发表,文中内容可能已经过时,如有问题,请联系我。

每次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 版权声明:本文为博主原创文章,转载请附上博文链接!

支付宝打赏 微信打赏 QQ钱包打赏

感觉不错?欢迎给我 打个赏~我将不胜感激!