Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 银行记录我想让用户输入一个4位数的pin,不要输入字母_C++_Computer Science - Fatal编程技术网

C++ 银行记录我想让用户输入一个4位数的pin,不要输入字母

C++ 银行记录我想让用户输入一个4位数的pin,不要输入字母,c++,computer-science,C++,Computer Science,我想让我的程序要求用户输入一个4针代码(只有数字),它将不接受任何字母。它不接受任何字母,但每次我输入pin码时,程序都不关心我问的4个数字,你可以输入1个数字,10个数字,它仍然可以工作。我希望它绝对输入一个4针代码,我尝试了很多解决方案,例如,如果(pin>999&&pin你不能真正限制通过std::cin输入的内容。你可以希望用户输入数字,或者考虑制作一个包含事件和所有内容的更结构化的应用程序,这将更耗时。你还可以让用户输入字符串,删除任何非数字字符,检查e长度为4,如果不满足条件,则最终

我想让我的程序要求用户输入一个4针代码(只有数字),它将不接受任何字母。它不接受任何字母,但每次我输入pin码时,程序都不关心我问的4个数字,你可以输入1个数字,10个数字,它仍然可以工作。我希望它绝对输入一个4针代码,我尝试了很多解决方案,例如,如果(pin>999&&pin你不能真正限制通过
std::cin
输入的内容。你可以希望用户输入数字,或者考虑制作一个包含事件和所有内容的更结构化的应用程序,这将更耗时。你还可以让用户输入字符串,删除任何非数字字符,检查e长度为4,如果不满足条件,则最终要求输入另一个。

while(!(cin>>clientnumber))
更改为
while(cin>>clientnumber)
clientnumberlength
返回
bool
。将
bool
与4进行比较是一个有问题的决定。检查长度的正确方法是PIN.size()==4user4581301你是什么意思?@ComputerGuy因为
clientnumberlength(PIN)
相当于
PIN.length()==4
,您的条件是
(PIN.length()==4)==4
#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;
}