处理错误输入
发布时间:2020-12-14 02:33:33 所属栏目:Windows 来源:网络整理
导读:输入流提供了一些方法检测异常情况,大部分和输入流有关的错误推条件都发生在无数据可读时,例如:可能达到了流尾(文件尾),应该养成读取数据后就检查流状态的习惯,这样就可以从异常中输入中恢复; 下面这个例子需要用户输入一个特殊字符来结束文件的输入:
输入流提供了一些方法检测异常情况,大部分和输入流有关的错误推条件都发生在无数据可读时,例如:可能达到了流尾(文件尾),应该养成读取数据后就检查流状态的习惯,这样就可以从异常中输入中恢复; 下面这个例子需要用户输入一个特殊字符来结束文件的输入:windows输入Control+Z,? Linux输入Control+D,都表示结束输入。 ? int main() {int num = 0; if(!std::cin.good()) { std::cerr << "Standard input is bad state" << std::endl; } int number = 0; while(!std::cin.bad()) { std::cin >> number; if(std::cin.good()) { num += number; }else if(std::cin.eof()) { std::cout << "eof" << std::endl; break; }else if(std::cin.fail()) { std::cin.clear(); //clear failure state std::string inputBad; std::cin >> inputBad; std::cerr << "WARNING : Bad input : " << inputBad << std::endl; } } std::cout << "Sum is : " << num << std::endl; return 0; } std::cin.fail,检测的是流状态是否正常,不正常就返回true, std::cin.eof()表示的是文件的末尾。 std::cin.bad()和 std::cin.good()都表示检测流的正常状态;当std::cin.bad()为true时,则表示有致命错误。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Elastic Kibana - Install as windows service
- 脚本 – 获取WINS服务器统计信息
- Advanced Installer的可靠性如何?
- windows-server-2008 – 如何整合来自不同服务器的所有事件
- Windows Powershell Vim Keybindings
- .net – 来自Windows服务的全局键盘钩子
- 如何在Windows中获取common-lisp GUI?
- Windows DC更换选项2000至2016
- DOS下用XCOPY命令复制文件
- windows-server-2008 – 在Windows Server 2008上为hyper-v
推荐文章
站长推荐
- [保护模式]段描述符属性_S位_TYPE域
- 识别DLL的来源
- .net – 如何以编程方式重新启动Windows资源管理
- winapi – 如何从使用“Project Centennial conv
- Why the Anaconda command prompt is the first
- 如何在Windows上使用Sys.which查找正确的可执行文
- windows-phone-7 – 是否隐藏Windows Phone 7应用
- 通过Windows资源管理器连接到SDL Tridion WebDAV
- .net – 在Windows Phone 8上将图像数据缓冲区传
- WIN10下安装 NGINX+PHP+MYSQL(WNMP) 环境
热点阅读