| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 572 人关注过本帖
标题:c++循环的 小 问题
只看楼主 加入收藏
yh19880108
Rank: 2
来 自:陕西
等 级:论坛游民
帖 子:34
专家分:24
注 册:2010-1-23
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:2 
c++循环的 小 问题
最近 学 的时候 遇见  一个小 问题 请大家 看看
while(!(cin>>golf[i]){
   cin.clear();
   while(cin.get()!="\n")
      contiune;
   cout<<...........
}
我想 问 一下 大家   这 里的 cin.clear()有 什么 作用啊
这里 没有 用eof啊  
 为什么 会出现 这 个  东西  书上不是  说他  是 开时 重新读取 输入 吗?
还有这里的 !(cin>>golf[i])是什么 意思  ?????
  请 高手 们  给与 解答 谢谢
搜索更多相关主题的帖子: golf 
2010-03-23 12:37
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
首先你没有说明 golf[i] 是个什么类型的数组 姑且为整型
那么while (!(cin >> golf[i])) 判断输入的是真还是假
如果输入的类型与定义的相同则跳过
反之则进入while循环
cin.clear();检举将一个出错的流的状态恢复为“好”。但也不完全是,因为它也可以把“好”的流变成“坏”。

对于什么是流,请看C++书的最后一章 基础教材有会有介绍
cin.clear()
清除cin流,并设置goodbit状态位。其参数是默认所以不必写出,
while(cin.get()!="\n")
这个是判断清除是否完毕  比如你输入一连串的字符
如未清理完则继续


总体的意思是你只能按golf数组的类型输入 否则就一直输出cout<<...........提醒你出错
2010-03-23 13:36
胡马平
Rank: 2
等 级:论坛游民
帖 子:18
专家分:54
注 册:2010-3-16
收藏
得分:20 
楼上说得对啊!
2010-03-23 18:20
快速回复:c++循环的 小 问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029654 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved