用于控制字符串输入的异常类

Exception class to control input of strings?

本文关键字:异常 输入 字符串 控制 控制字符 用于      更新时间:2023-10-16

如何控制输入在这样的一长排输入请求中正确而整洁地进行?我曾想过使用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>