我哪里错了重新:数据验证c ++

时间:2015-09-25 18:21:53

标签: c++

我有一些代码: 我希望接收一个ID,确保它的长度为8个字符,确保每个数字都是一个数字,并继续询问,直到它们给出正确的输入。在此之前有人标记,我研究并试图查看给出的答案:c 根据我的代码,我不知道为什么我输入的00000002的ID是无效的ID。它不起作用。有人可以帮忙吗?

void Student::getData(){
    string id_;

    cout << "lastName?" << endl;
    cin >> lastName;

    cout << "firstName?" << endl;
    cin >> firstName;

    cout << "ID?" << endl;
    while(getline(cin,id_) && id_.size() != 8){
    cout << "Invalid ID" << endl;
    }

1 个答案:

答案 0 :(得分:2)

while(getline(cin,id_) && id_.size() != 8){

此处getline()只是从上一行输入中获取新行。在此之前添加一行以忽略该行的其余部分。

cin.ingore(std::numeric_limits<std::streamsize>::max(), '\n');
while(getline(cin,id_) && id_.size() != 8){