| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 193 人关注过本帖
标题:About continue!
收藏  订阅  推荐  打印 
david830_wu
Rank: 1
等级:新手上路
帖子:8
积分:200
注册:2008-6-21
About continue!

这是一个录入数组的函数,来自《C++ Primer Plus》:
int fill_arrary(double ar[], int limit)
{
    using namespace std;
    double temp;
    int i;
    for(i=0;i<limit;i++)
    {
        cout<<"Enter value #"<<(i+1)<<":";
        cin>>temp;
        if(!cin)
        {
            cin.clear();
            while(cin.get() !='\n')  /*就是这*/
                continue;       /*里看不明白*/
            cout<<"Bad input:input process terminated.\n";
            break;
        }
        else if(temp<0)
            break;
        ar[i]=temp;
    }
    return i;
}
上面标记的地方,初学看不太明白,不知道是什么用的,尤其是continue用的奇怪。
在这里请教各位,希望能得到解答,我将万分感激!
搜索更多相关主题的帖子: continue  About  
2008-7-10 09:25
战斗不能
Rank: 1
等级:新手上路
帖子:2
积分:126
注册:2008-7-9

while(cin.get() !='\n')
    continue;

以上和:
while(cin.get() !='\n');

是一样的,就是把输入的内容按字符的方式一个接一个的读完

if(!cin):
表示输入类型不匹配

cin.clear():
表示清除输入错误后的相应流状态,这样就可以重新读刚才的输入了

while(cin.get() !='\n'):
表示重新按照字符的方式读取刚才的输入,循环一直读到最后的回车符

这样就读完了所有的内容

至此,用户就可以再次正常的使用cin了
2008-7-10 13:44
david830_wu
Rank: 1
等级:新手上路
帖子:8
积分:200
注册:2008-6-21

Oh!我明白了!
while(cin.get() !='\n')
    continue;
的作用就是清除好面所有不匹配的流,是后面的读入正常!
高手啊!太谢谢了!!!
2008-7-10 13:58
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.064523 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved