cin条件状态及break/continue

来源:互联网 发布:软件行为分析 编辑:程序博客网 时间:2024/05/18 12:41
int judge_input(int min,int max)//(含min与max){int n;while(true){cin>>n;if(cin.fail()){cout<<"请输入数字!\n";cin.clear();cin.ignore(100,'\n');continue;}if(n<min||n>max){cout<<"请重新输入合法的数字!"<<endl;cin.ignore(100,'\n');continue;}break;}return n;}

这是一段程序用来判断输入数据的合法性,程序虽短,但却是花费了不少功夫,集中的难点有两个。

1 cin的相关函数

2 break和continue的用法(看来是忘记了)

下面具体总结下:

1 cin的条件状态相关函数

 1 )cin有常用的4个条件状态函数fail(),bad(),eof(),good()

        cin.fail():当cin输入不符合指定格式时输出true,对应failbit

cin.bad():流出现系统级故障,对应badbit

  cin.eof():cin流遇到结束符,对应eofbit

cin.goog():cin流状态完好时 

 2)当cin当遇到fail,bad,eof 时,cin就不能再使用,要使用cin.clear()或cin.clear(flag)使得cin流回复正常状态;

 3) cin中有个ignore函数是经常用的,是用来忽略输入缓冲区的前num字符或在遇到某个字符时终止

2 break和continue

 1)break

结束最近的while/do while/for/switch语句,并将程序的主导权传递给紧接在被终止句子之后的语句

2)continue

导致最近的循环语句的当次迭代提前结束,进入下一个迭代。


原创粉丝点击