用于控制字符串输入的异常类
Exception class to control input of strings?
如何控制输入在这样的一长排输入请求中正确而整洁地进行?我曾想过使用try/catch块,但这似乎是错误的做法。如果有任何建议/指引我走正确的道路,我们将不胜感激。
cout << "First Name?: ";
cin >> first;
cout << "Last Name?: ";
cin >> last;
cout << "Middle Name?: ";
cin >> middle;
temp->setName(first, middle, last);
cout << "ID number? (5 digits): ";
cin >> ID;
temp->setId(ID);
cout << "Age?: ";
cin >> age;
temp->setAge(age);
cout << "Phone number?(ie. ##########): ";
cin.ignore();
getline(cin, ph);
temp->setPhone(ph);
cout << "Address Street Number?: ";
cin >> addressNum;
cout << "Address Street Name?: ";
cin >> addressName;
temp->setAddress(addressNum, addressName);
cout << "Gender?: (M or F) ";
cin >> gender;
temp->setGender(gender);
cout << "E-mail?: ";
我认为可以使用do-while循环来控制正确的输入。我只出示了身份证号码。
int flag;
do
{
flag=0;
cout << "ID number? (5 digits): ";
cin >> ID; //as integer type so convert it to string
string Result; // string which will contain the result
ostringstream convert; // stream used for the conversion
convert << ID; // insert the textual representation of 'Number' in the characters in the stream
Result = convert.str();
if(Result.length()!=5)// check id exacly 5 digit
{
cout<<"Error!n";
flag=1;
}
} while(flag);
temp->setId(ID);
您必须包含一个头文件#include<sstream>
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 异常处理:如果用户输入不是三个特定字符之一
- C++中的奇怪异常代码,当用户输入为 23 时,退出值 1,073,740,940(代码:0xc0000374)
- C++:为什么当我想输入"q"退出时,这会给我一个异常抛出错误?
- 推荐一种在未输入获取行分隔符时引发异常的方法?
- 当用户在字符数组中输入整数值时捕获异常
- 使用C++ CGI 脚本输入的异常
- 异常规范和标准输入迭代器
- 当输入应该是 int 时,如何为 char 创建异常
- 输入 main() 之前出现堆栈溢出异常
- 正在捕获输入和输出文件的异常
- 当输入文件夹名称时,流应该引发异常
- std::cin 不会在错误的输入上引发异常
- 用于控制字符串输入的异常类
- 如何为错误输入编写异常处理
- Python输入和异常vs. c++
- 如何:捕获输入函数异常的可变包装函数
- 从二进制文件输入字符串时未处理的异常| VisualStudio
- 排序函数为大输入 0 提供浮点异常