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