标题:[原创][经典]如何处理非法字符输入
只看楼主
苦味酸
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-29330-1-1.html




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

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