Банковская запись Я хочу попросить пользователя ввести пин 4 ди git без букв - PullRequest
0 голосов
/ 06 марта 2020

Я хочу, чтобы моя программа попросила пользователя ввести 4-пиновый код (только цифры) и чтобы она не принимала никаких букв. Он не принимает букв, но каждый раз, когда я ввожу пин-код, программа не заботится о 4 цифрах, которые я спрашиваю, вы можете ввести 1 цифру, то есть 10 цифр, и она все равно будет работать. Я хочу, чтобы он вводил 4-контактный код. Я перепробовал множество решений, например, метод if (pin> 999 && pin <= 9999), и он не работает ... Мой код для этой части пока что есть. Заранее большое спасибо за помощь тем, кто может мне объяснить мои ошибки </p>

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>

using namespace std;

bool clientnumberlength(string pin) {

    bool status = true;
    if (pin.length() != 4) {
        status = false;
    }
    return status;
}


int main() {



    int clientnumber = 4;


    cout << "Welcome to my bank incorporation" << endl;
    cout << "Please enter your 4 pin customer number" << endl;

    while (!(cin >> clientnumber)) {
        string PIN;
        cin >> PIN;

        if (clientnumberlength(PIN) == 4) {
            cout << "PIN accepted" << endl;
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');

        }
        else {
            cout << "PIN refuser" << endl;
            cout << "Please enter your 4 pin customer number" << endl;
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        }
    } 


    return 0;
}

1 Ответ

0 голосов
/ 06 марта 2020

Вы не можете наложить ограничения на то, что вводится через std::cin. Вы можете либо надеяться, что пользователь введет числа, либо заглянуть в создание более структурированного приложения с событиями и всем, что потребует больше времени. Вы также можете попросить пользователя ввести строку, удалить все нечисловые символы, проверить длину 4 и в конечном итоге попросить ввести еще один, если условия не выполняются.

...