main.cpp: #include <iostream> #include <exception>
using namespace std;
class Test { public: string name; long id; bool pass; public: void getUser() { pass=false; while(pass==false) { try{ pass=true; cout<<"Input your id:"<<endl; cin>>id; if(cin.fail()) //判读输入是不是正确的 { throw new exception; } cout<<"Input your name:"<<endl; cin>>name; //下面是不用异常处理方法做的。注意里面的continue,其实这是针对上面cin>>id写的。 if(cin.fail()) { pass=false; cin.clear(); cout<<"Your name is wrong,please input again!"<<endl; continue; } }catch(exception* e)//这里要用exception*不然会编译会出错 { pass=false; cout<<"Your inputing is wrong,please input again!"<<endl; cin.clear();//cin.clear()方法很重要,如果不掉用,则cin异常不会终止,那么程序就进入了死循环 delete e; } }
} void display() { cout<<"This is my first class processed in linux!"<<endl; cout<<"my name is "<<name<<endl; } }; int main() { Test* tt= new Test(); tt->getUser(); tt->display(); return 0; }
|
笔记:
1.注意函数cin.fail()的用处。
2.注意函数cin.clear()的用法(有注释)。
....................................................................
3.getUser()这个函数目的是为了检测输入异常。这里可以是一个c++中异常处理的实例,网上很多人士说建议不要使用c++中的异常处理机制,不知道什么原因。所以我就在cin>>name下面实现了不用异常处理的方法,但是写的代码比较多。同时,这个方法处理完输入异常后会做一个循环,直到你输入正确的内容。
详细请点击:http://www.verydemo.com/demo_c92_i281669.html
分享到:
相关推荐
Code::Blocks使用C++语言开发,是一个血统纯正的 C/C++程序集中开发环境,用户可以使用它来开发多种程序,Code::Blocks提供了多达20种的工程模板,包括常用的控制台程序、 Win32GUI程序、动态\静态连接库、GTK+工程...
系统信息程序的开发片段: // MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "sysinfo.h" #include "MainFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_...
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_MAILSERVER_H__CB181B60_A7D0_4663_B1F4_A97F7F2B9BAB__INCLUDED_)
2. 编写你的第一个C程序 打开你选择的编辑器或IDE,创建一个新的C文件。通常,C文件的扩展名为 .c。 c Copy code #include int main() { printf("Hello, World!\n"); return 0; } 这是一个简单的"Hello, World!...
2. 编写你的第一个C程序 打开你选择的编辑器或IDE,创建一个新的C文件。通常,C文件的扩展名为 .c。 C Copy code #include int main() { printf("Hello, World!\n"); return 0; } 这是一个简单的"Hello, World...
十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的...
编译原理课程设计中的第三型词法分析器和LR型语法分析器是一个基于C++实现的编译器前端项目。这个项目旨在帮助学生实践编译原理的知识,理解编译器的工作原理,并提高编程技能。 **第三型词法分析器**: - 定义编译...
第一个参数表示你要连接的服务器的IP地址,如果是在自己这台计算机调试程序,直接输入”127.0.0.1”或“localhost”; 第二个参数表示要连接的服务器的端口; 第三个参数表示要连接的客户端端口,主要就是用于...
我们创建第一个程序,并从最简单的图形中绘制出未来卡通的风景和人物。 我们添加参数(宽度,高度,大小,颜色等),以便可以将所有内容相乘,并在大小,形状,颜色等方面有所不同。 这是我得到的: 我们研究...
我叫Rostyslav,这是我对项目的第一次承诺。 如何安装和运行 要运行此程序,请在您的计算机上下载Zip文件。 提取文件。 在cpp-notebook-project-master内部,您将罚款Task Management.cbp文件。 双击在Code :: ...
此外,将Code :: Blocks放在同一位置也是很有用的,这是使用C ++语言进行编程的开发环境,作者专门进行了设置以方便您使用C + +进行编程的第一步。 +语言。 制作动画片的过程可以分为7个阶段。 阶段1.画英雄! ...
介绍 这是的个人笔记的集合。...第一天:设置Windows构建 安装Visual Studio 2019和Code :: Blocks(不需要Code :: Blocks) WinMain:Windows程序的输入 MessageBox:显示一个消息框 第2天:TODO