【C++】数据输入检测

void List::createContacts() {
    int num=0,num2=0;
    while(1){
        system("cls");
        cout << "==========================" << endl;
        cout << "[   通讯录——创建联系人   ]" << endl;
        cout << "==========================" << endl;
        cout << "请输入联系人创建数量(1-100):";
        //此处开始检测
        if (!(cin >> num) || num <= 0 || num > 100) {
            cout << "数据输入错误,请重新输入!" << endl;
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
            Sleep(2000);
            continue;
        }
        //此处结束检测
        num2 = num;
        cout << "请根据以下格式依次输入联系人信息\n姓名 手机号 座机号 QQ号 邮箱 单位 住址 分类" << endl;
        while (num--) {
            string telephone, mobilephone, qq, name, unit, address, sort, email;
            while (1) {
                int flag = 0;
                cout << "请输入第" << num2 - num << "个联系人信息:" << endl;
                cin >> name >> mobilephone >> telephone >> qq >> email >> unit >> address >> sort;
                contacts* temp = head;
                //姓名查重
                while (temp != NULL) {
                    if (temp->getName() == name) {
                        cout << "您输入的姓名与已有姓名重复,请重新输入!" << endl;
                        Sleep(2000);
                        flag = 1;
                        break;
                    }
                    temp = temp->getNext();
                }
                if (flag == 1) {
                    continue;
                }
                break;
            }
            addNode(telephone,mobilephone,qq,name,unit,address,sort,email);
        }
        cout << "联系人创建完成!程序将在3秒后退出回菜单" << endl;
        Sleep(3000);
        break;
    }
    return;
}

以下是部分代码:

if (!(cin >> num) || num <= 0 || num > 100) {
    cout << "数据输入错误,请重新输入!" << endl;
    cin.clear();
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    Sleep(2000);
    continue;
}

注意:使用cin.ignore(numeric_limits<streamsize>::max(), '\n');代码时,若已经引入了windows.h头文件,那么需要在此头文件上输入#define NOMINMAX,也就是:

#define NOMINMAX
#include <windows.h>
© 版权声明
THE END
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容