此部分代码检查char数组中的特定格式。
char emp_id[10];
cout<<"Employee ID\t\t: ";
while(cin.getline(emp_id,10)) {
if (emp_id[0] == 'e' || emp_id[0] == 'E'){
break;
}
std::cout << "Input error. Invalid employee ID format." << std::endl;
cout<<"\nEmployee ID\t\t: ";
}
接受的格式为e<employee ID number>
。例如:e3
或E59
。不接受e
之后的任何字母,例如Eg
,e56h
,e77$
等。
我设法使用上面的代码检查数组中的第一个字母是e
还是E
。然后我不知道如何检查无效格式,例如Eg
或e56h
。如果之前已经问过这个问题,请将我指向答案页面,因为我不确定应该使用哪个搜索关键字。请帮助我,并提前感谢。
答案 0 :(得分:1)
尝试在第一个char之后使用substring并转换为int,如下所示:
int myNum = atoi(emp_id.substr(1, emp_id.length()).c_str());
如果成功,那么好就会失败。