gpt4 book ai didi

c++ - 控制字符串输入的异常类?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:48:31 25 4
gpt4 key购买 nike

在像这样的一长排输入请求中,如何控制输入是否恰当、整齐?我正在考虑使用 try/catch block ,但这似乎是错误的/漫长的做事方式。任何提示/指出我正确的道路将不胜感激。

    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++ - 控制字符串输入的异常类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com