| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5269 人关注过本帖
标题:[原创][经典]如何处理非法字符输入
只看楼主 加入收藏
苦味酸
Rank: 2
等 级:新手上路
威 望:3
帖 子:142
专家分:0
注 册:2005-9-9
收藏
 问题点数:0 回复次数:42 
[原创][经典]如何处理非法字符输入
我们在做程序菜单时,设置供选择的ID(一般为整型数)却往往遇到用户输入非法字符(包括字符和一些组合键)的情况无法处理(比如:用户输入“Ctrl+z”,若不做处理就会进入死机状态,大家可以试着做一下),本人是在做数据结构的课程设计时发现这个问题的,经过一翻精心构思终于解决了这个问题,收获真的很大,这里拿出来共享,建议大家多讨论 或许大家有更高明的办法解决此问题,敬请指教! [hide] int input()//输入为非法字符返回 -1并退出(做菜单ID一般用正整数) { char str[256]={0}; int n=0; do{ cin>>str; if(strlen(str))//输入错误ID时返回重输入 { n=atoi(str); if(n<1||n>8)//这里做的菜单选项为1~8 out<<"输入ID错误,请重输入:"<<endl; } else { cout<<"非法字符!\n"; return -1; } }while(n<1&&n>8); return n; } “Ctrl+z”是一个非常典型的非法字符例子,原因在于“cin>>str”确实有输入,但是cin不能得到输入结果,致使程序进入死循环(建议亲自试试)。为什么会这样呢?这里不便多说,大家也可以讨论讨论。 [/hide]
搜索更多相关主题的帖子: 字符 经典 输入 
2005-10-05 00:42
真的好!
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-10-4
收藏
得分:0 
经典之作!!!
强力支持!!!
2005-10-05 00:45
真的好!
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-10-4
收藏
得分:0 
楼主所提的问题正是我所需要解决的
谢谢楼主!
请问楼主数据结构实习做的什么内容呢?
给我些指点噻
2005-10-05 00:53
静如流水
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-9-30
收藏
得分:0 
?
2005-10-05 22:22
rustychen
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-10-1
收藏
得分:0 
学习学习
2005-10-06 18:17
jackiux
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-10-6
收藏
得分:0 
好,看看!
2005-10-06 22:12
凌云
Rank: 1
等 级:新手上路
威 望:1
帖 子:78
专家分:0
注 册:2005-9-17
收藏
得分:0 
怎么回事?

2005-10-07 15:49
倒转地球
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-9-13
收藏
得分:0 

2005-10-08 21:34
kunami
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-10-10
收藏
得分:0 
强力支持!!!
2005-10-10 10:42
gowant
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2005-7-5
收藏
得分:0 
没看
出来
2005-10-10 12:01
快速回复:[原创][经典]如何处理非法字符输入
数据加载中...
 
   



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

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