习惯了使用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 实现循环读入相关推荐

  1. 神奇的输入 while(cin....)如何在遇见换行之后进入下一层循环读入

    1 cin>>m>>n; 2 for(int i=1;i<=m;i++) { 4 int x=0; 5 char ch=' '; 6 while(ch!=10) //在遇 ...

  2. C++下ctrl+z退出cin输入循环

    ctrl+z 退出输入的循环结构 测试的语言及工具 for循环 while循环 do while循环 进一步探究ctrl+z在变量内部储存为什么 几天后的继续 测试的语言及工具 C++ visual ...

  3. cin和scanf读入速度

    cin慢是有原因的,其实默认的时候,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱.正因为这个兼容性的 ...

  4. C++读入txt,写入txt,循环读入txt,循环写入txt

    目录 1普通读写 2循环读写(存在小瑕疵) 3.循环读写(解决小瑕疵) 1普通读写 #include<iostream> #include<fstream> #include& ...

  5. C语言实现循环读入txt文件

    网上查了很多相关知识的资料,基本上都是自定义函数或者使用C语言库自带的函数进行的读取,我主要是使用字符串连接的方法来实现读取文件夹下多个txt文件. 主要我本人擅长使用C++,使用网上的Grain加密 ...

  6. bash shell 循环读入每一行(转)

    由于使用for来读入文件里的行时,会自动把空格和换行符作为一样分隔符,因为当行里有空格的时候,输出的结果会很乱,所以-- cat line.txt |while read i > do > ...

  7. C++输入输出:cin/cout 还是 scanf/printf?

    相信使用C++的人都有一种迷惑或者是不自信:在输入输出的时候是不是应该使用scanf/printf更好呢,因为传说cin/cout龟速,我当时也长期被这个所困扰,后来在阅读C++ primer第五版的 ...

  8. java 大数的学习

    import java.math.*; import java.util.*;public class study {public static void main(String[] args) {/ ...

  9. C++Primer学习笔记:第1章 开始

    本博客为阅读<C++ Primer>(第5版)的读书笔记 ps:刚开始的时候我将所有的笔记都放在一篇博客中,等看到第六章的时候发现实在是太多了,导致我自己都不想看,为了日后回顾(不那么有心 ...

最新文章

  1. postgres 入门
  2. 定位的准确度与精度指标定义——RMS,CEP,Sigma
  3. 东大18秋计算机网络在线作业1答案,东大17秋学期《计算机网络基础》在线作业3 免费答案...
  4. Python 图像处理篇-利用opencv库和numpy库读取包含中文路径下的本地图片实例演示
  5. 你真的懂 timeout 吗?
  6. iOS开发-XMPP
  7. Python实现二叉搜索树
  8. 浅析游戏AI设计模式
  9. 2020数据分析人才及CDA持证人行业报告
  10. C#-概念-类库:类库
  11. oracle 批量修改同义词,Oracle批量创建同义词
  12. Error: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk
  13. UVC Extension Unit 相关资料整理
  14. 印度黑客号称世界第一,结果第二天被中国黑客干掉了
  15. VUEX模块化不同模块调用其它模块的mutations报错: [vuex] unknown mutation type: XXX
  16. Spring Boot WebSocket实时监控
  17. pstack使用和原理
  18. 【Python】基于文本匹配的微信自动问答
  19. --i和i--的区别
  20. 习题5-7 使用函数求余弦函数的近似值 (15分)

热门文章

  1. day04_09 while循环03
  2. 2017年07月03号课堂笔记
  3. C++实例讲解Binder通信
  4. linux里的进程简介
  5. java 获取随机数字的三种方法
  6. [转]深入浅出Java设计模式之备忘录模式
  7. 2011年:签到已死?
  8. android音量图标不见了,电脑声音图标不见了如何解决?
  9. python众数问题给定含有n个元素的多重集合s_分治法求众数 给定含有n个元素的多重集合S 联合开发网 - pudn.com...
  10. python与材料计算公式_《从问题到程序:用Python学编程和计算》——2.11 补充材料-阿里云开发者社区...