| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2192 人关注过本帖
标题:整型ID,while(!(cin>>ID||isalpha(ID)))对正确和错误的输入的判断过程,请 ...
只看楼主 加入收藏
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
整型ID,while(!(cin>>ID||isalpha(ID)))对正确和错误的输入的判断过程,请能人详细说一下
int ID;
while(!(cin>>ID||isalpha(ID)))//原来意图是如果输入错误或输入不是数字则重新输入,那么跳出循环的条件应该是while(!(cin>>ID&&isalnum(ID))),为什么我用while(!(cin>>ID||isalpha(ID)))也能行呢?
{
}
2016-03-04 11:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
对于 cin>>ID || isalpha(ID)
如果 cin>>ID 失败,就会执行 isalpha(ID),但cin>>ID时,ID的值是无意义的,怎么可以用它isalpha(ID)?
2016-03-04 12:08
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
回复 2楼 rjsp
的确是这样的,cin>>ID失败后ID的值应该是个随机数字,我写代码时没仔细思考,运行了下竟然没什么问题,这才来问问,经您一提醒我明白过来,当cin失败后ID应该是个随机数字(今天试了好像都会是0,可能是C++编译器就是这么干的?),这就导致了两个条件都为假,也顺利的循环下去了......

[此贴子已经被作者于2016-3-4 17:58编辑过]

2016-03-04 17:55
快速回复:整型ID,while(!(cin>>ID||isalpha(ID)))对正确和错误的输入的判断过程 ...
数据加载中...
 
   



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

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