判断输入是否合法
来源:互联网 发布:饭菜先生餐饮软件 编辑:程序博客网 时间:2024/06/06 16:27
一、判断输入是否为数字
通常使用方法1和3,方法2和4无法保证一定能判断正确。
1)函数isdigit
表头文件
#include<ctype.h>
定义函数
int isdigit(char c)
函数说明
检查参数c是否为阿拉伯数字0到9。
返回值
若参数c为阿拉伯数字,则返回TRUE,否则返回NULL(0)。
2)当使用cin,cout输入流时int num;while(!(cin>>num)){ //cin输入错误时执行下边语句cin.clear(); //清除流标记cin.sync(); //清空流cout<<"输入了非数字字符"<<endl; //打印错误提示}
3)创建数组存储输入的数据的每一位并判断
bool check( char *str ) { int i; for ( i = 0; i < strlen( str ); i++ ) if ( str[ i ] < '0' || str[ i ] > '9' ) return false; return true; }
若存在元素小于0或大于9的情况,则表明数字中有其他非数字元素存在,则肯定不是整形!
元素都在0-9之间,若数组的首位是0且0之后还有其余的元素如0123,这样的也不是数字!
可以通过有无小数点来区分整形和浮点型,且要保证小数点只出现一次。4)通过检测cin的状态来表明输入的是否为数字
int a;cin >> a;if(cin.fail()){ cout << "输入的不是数字!" << endl;}
注:
int a; cin >> a; //输入3.5 此时cin.fail()和cin.bad()都为false,a的值为3
char a;cin >> a;//输入3.5 此时cin.fail()和cin.bad()都为false,a的值是'3'
int a;cin >> a;//输入c 此时cin.fail()为true,cin处于阻塞状态,可以判断出输入的数据类型错误。
只有在变量为整形或浮点型,输入数据不是整形或者浮点型的时候,才会使得cin处于错误状态;
若反过来变量是字符类型,输入数据是整形或者浮点型,都不会改变cin的状态。
而且对于特殊情况:
float a;cin >> a;//输入3.c 此时cin.fail()和cin.bad()为false 无法判断出输入数据错误!!!!!!!
0 0
- 判断输入日期是否合法
- 判断输入年份是否合法
- 判断输入是否合法
- 判断email 输入是否合法
- 判断输入的年月日是否合法
- 判断年月日的输入是否合法
- 如何判断日期变量的输入是否合法
- 各种判断输入数据是否合法的js
- js中判断输入ip地址是否合法
- javascript判断用户输入是否合法日期格式
- 判断输入的日期是否合法的javascript
- iPhone 判断输入得邮箱是否合法
- javascript判断输入的内容是否合法
- 判断输入的EMAIL地址是否合法
- 判断输入的EMAIL地址是否合法
- 判断输入的手机号和价格是否合法
- 判断输入的IP地址是否合法
- 用正则判断所输入的email是否合法
- 第九周第三项目——数组类
- uva 1225 - Digit Counting
- 1-(2)
- Fedora 19 系统安装
- zabbix监控mysql
- 判断输入是否合法
- hdu 1233 还是畅通工程
- java线程那些事
- MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
- php修改php.ini重启nginx php.ini设置不生效
- 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main
- C++第五次上机实验--数组分离
- Fedora 20 系统安装
- 笨蛋的难题(二)