visual c++帮助,密码验证器

visual C++ Help, Password Verifier

本文关键字:验证 密码 c++ 帮助 visual      更新时间:2023-10-16

抱歉,如果我听起来像个白痴或我的代码本身很糟糕,但我需要所有的帮助,我可以得到。很多人都写过这样的代码,但我不想看他们的,基本上就是复制粘贴。这就是问题所在,当我尝试运行这个程序时,它告诉我标识符_TCHAR是未定义的,并在第20行给我一个警告"& lt;/无符号mismatch"签署。再一次,我希望得到任何帮助。

#include <iostream>
#include <cstring>
using namespace std;

int main(int argc, _TCHAR* argv[])
{
    const int size = 1000;
    char password[size];
    int count;
    int times1 = 0;
    int times2 = 0;
    int times3 = 0;
    cout << "Please enter your password: ";
    cin.getline(password, size);

    if (strlen(password) < 6){
        cout << "Not valid, your password should be atleast 6 letters";
    }
    for (count = 0; count < strlen(password); count++)
    {
        if (isupper(password[count])) {
            times1++;
        }
        if (islower(password[count])){
            times2++;
        }
        if (isdigit(password[count])){
            times3++;
        }
    }
    if (times1 == 0) {
        cout << "Invalid, the password should contain atleast one uppercase letter";
    }
    if (times2 == 0) {
        cout << "Invalid, the password should contain atleast one lowercase letter";
    }
    if (times3 == 0) {
        cout << "Invalid, the password should contain atleast one digit";
    }

    cin.get();
    return 0;
}

将所有内容包装在while循环中(从times1=0, times2=0, times3=0到cin.get()之前)。使用一个名为validPass之类的bool变量并初始化为true。当其中一个需求失败时,只需使validPass=false。while应该是while(validPass==false){…}

#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    const int size = 1000;
    char password[size];
    int count;
    bool validPass;
    do
    {
        validPass = true;
        int times1 = 0;
        int times2 = 0;
        int times3 = 0;
        cout << "Please enter your password: ";
        cin.getline(password, size);

        if (strlen(password) < 6){
            cout << "Not valid, your password should be atleast 6 letters";
            validPass = false;
            continue;
        }
        for (count = 0; count < strlen(password); count++)
        {
            if (isupper(password[count])) {
                times1++;
            }
            if (islower(password[count])){
                times2++;
            }
            if (isdigit(password[count])){
                times3++;
            }
        }
        if (times1 == 0) {
            cout << "Invalid, the password should contain atleast one uppercase letter";
            validPass = false;
            continue;
        }
        if (times2 == 0) {
            cout << "Invalid, the password should contain atleast one lowercase letter";
            validPass = false;
            continue;
        }
        if (times3 == 0) {
            cout << "Invalid, the password should contain atleast one digit";
            validPass = false;
            continue;
        }
    } while (!validPass);
        cin.get();
    return 0;
}