C++错误输入的处理--整型错误输入字符串
来源:互联网 发布:老mac安装10.12 编辑:程序博客网 时间:2024/04/30 09:04
- 无错误处理示例
- 带错误处理 使用sscanf1
- 有错误版
- 修正版
在实际应用时,比如需要输入一定范围内的整数,本文分析如何处理错误的输入数据
无错误处理示例:
#include <iostream>using namespace std;int main(){ int a; do{ cout << "Input a number: " << endl; cin >> a; }while(a<1||a>9);//限制整数a的范围 [1,9]}
这时,如果我们输入字符数据,会导致类似死循环的输出”Input a number: “,程序崩溃
带错误处理: 使用sscanf1
考虑到可以通过字符转换的方式来处理错误数据,得到下面这种解决方法
有错误版
#include <iostream>using namespace std;int main(){ int a; do{ char temp[100]; cout << "Input a number: " << endl; cin >> temp; sscanf(temp,"%d",&a); }while(a<1||a>9);//限制整数a的范围 [1,9]}
这种方案下,大体上能解决输入为字符串出错的问题,但是忽略了cin函数的用法。
cin在读取字符串的时候是遇到空格停止的,因此这里为了获取一行数据使用cin.getline2
修正版
#include <iostream>using namespace std;int main(){ int a; do{ char temp[100]; cout << "Input a number: " << endl; cin.getline(temp,100); int retnum = sscanf(temp,"%d",&a); }while(retnum!=1 || a<1 || a>9);//限制整数a的范围 [1,9]}
解决了之前说的问题,同时利用sscanf的返回值进行了判断,应该解决了数字错误输入的问题
- 头文件
<stdio.h>
or<iostream>
作用:从字符串中读取指定格式的数据
用法见示例代码,对于unicode是swscanf函数
该函数返回值是成功格式化数据的个数 ↩ - cin.getline(字符指针(char*),字符个数N(int),结束符(char));
读满N-1个字符或者遇到结束符停止,默认结束符为’\0’ ↩
0 0
- C++错误输入的处理--整型错误输入字符串
- 一个字符串输入的错误
- C语言技巧--对错误输入的处理
- cin输入错误处理
- C++ 输入流的错误处理
- Struts下的用户输入错误处理
- cin标准输入流的错误处理
- 可以输入小数 & 错误处理
- 字符串的输入--C
- DataGridView中输入错误数据的处理(五)
- 学习c++ ,对异常错误输入的处理
- 文件操作《9》输入错误处理
- cin标准输入流错误处理
- [C#,WinForm]进程输入、输出、错误流的重定向
- c语言里两个跳过错误输入代码的区别
- pat1009,字符串的输入处理
- 处理C++中的错误输入类型导致的无限输入bug
- ls: 读取目录 .: 输入/输出错误 错误处理
- Android——selector背景选择器
- R作图 图形设备不支持 tiff
- 求方程所确定的隐函数y在 x=0处的导数
- JavaScript 实现暴击事件
- javascript里getFullYear()、getYear()的区别
- C++错误输入的处理--整型错误输入字符串
- Redis集群监控工具之RedisLive
- UVa 10152 - ShellSort
- Vsftp配置文件的设定值说明讲解
- 《leetCode》:largestRectangleArea
- 简单选择排序 java实现
- 初等数论_1 2016.3.30
- JSCH专题
- 最简单的反射型XSS拿cookie