c++中cin.clear()的重要性
  M9aMEIE19lAW 2023年11月02日 69 0


c++中cin.clear()的重要性


             2012-08-09 09:19:06

分类: C/C++

  题目:

         读取一系列int型数据,将其存入vector对象中,然后使用count()统计某个指定值出现的次数。

  下面是我的程序:

点击(此处)折叠或打开

1. int
2. main(void)
3. {
4. int num;
5. <  int >ivec;
6.           
7. while( cin >> num )
8. .push_back(num);
9. 
10. << "Please input the number you want to count:"
11. >> num;
12. 
13. << num << " appears "  << count(ivec.begin(), ivec.end(), num) << " times!"  << endl;
14. 
15. ;
16. }

c++中cin.clear()的重要性_ci

  

   我输入了数据1、2、3,没有输入要查询的数据,然后按下" ctrl + D "就显示出如上的结果。程序将输入数据默认为3--最后一个数据(若输入其他的数据或者更多的数据,都显示最后一个结果),说明系统的输入流中已经有数据存在了,所以,在我们输入数据后,应该把输入流进行clear()。

  修改后的代码:

点击(此处)折叠或打开

1. ...
2. while( cin >> num )
3. .push_back(num);
4. 
5. cin.clear();
6. 
7. cout << "Please input the number you want to cout:";
8. cin >> num;

运行结果:

c++中cin.clear()的重要性_数据_02



  


  细心的人,可能发现了修改后的运行结果与修改前的结果所占用的行数是不同的,修改前占用了4行,修改后的结果占用了5行。这就说明了问题,修改前的代码运行时,我并没有输入要查询的数据,所以没有按下回车键换行;而修改后的代码输入了要查询的数据,所以进行了换行。

注意:

       如果我们将要查询的数据分配一个新的变量,结果还是一样的。为什么呢?其实,只要输入流中的内容没有改变,任何变量中存放的都是输入流中的内容。

 

   这看似是一个很小的问题,但是如果我们不注意这样细小的问题,很有可能造成程序运行时错误。我自己是从这个很小的问题中,学习到了很多,希望你也是。

           

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
M9aMEIE19lAW