欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

C++ cin 实现循环读入

发布时间:2023/11/30 c/c++ 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C++ cin 实现循环读入 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

习惯了使用while(~scanf("%d",x)){}来实现循环读入,但是有时候使用泛型编程的时候就必须使用C++中的cin,但是当我想要实现循环读入的时候却发现有些困难。

我们可以看一下下面这个简单的例子:

#include <iostream>using namespace std;int main() {int n;while(cin>>n){cout<<n<<endl;}int x;cout<<"请输入x:"; cin>>x;cout<<"x的值为"<<x<<endl;return 0; }

运行结果:

这和我们想要的不一样。为了能够使用cin进行循环读入,就必须使用cin的一些成员函数

实际上我们使用cin读取失败以后会有一个错误的标志位,cin.fail()将会为真。如果我们不清除的话是没有办法再使用cin的。因此使用失败后应该cin.clear()方法清除标志位

但是此时还是不能正常读取,这是因为缓冲区中仍然是那个错误的输入,为了解决这个问题,我们可以使用cin.ignore()清除缓冲区,这样就可以重新输入啦。

这两个方法还可以带参数,但是简单使用的话不用考虑那么多。

然后我们就能够使用cin循环读入啦。

#include <iostream>using namespace std;int main() {int n;cin>>n;while(cin.fail() == false)//没有发生错误{cout<<n<<endl;cin>>n;}cin.clear(); cin.ignore();int x;cout<<"请输入x:"; cin>>x;cout<<"x的值为"<<x<<endl;return 0; }

运行结果

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的C++ cin 实现循环读入的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。