我在问一个问题,就是要求输入一个只包含四位数的帐号.这必须使用基本的初学者C++来完成.
我需要找出一种方法来将整数的输入限制为四位数.用户应该能够输入0043或9023或0001,它应该是可接受的值....
我想我知道如何使用字符串.... getline(cin,input)完成它然后检查input.length()== 4?
但是我不知道我怎么会用整数输入做这个.
像这样的东西应该有效。一旦用户输入了恰好四个字符的内容,您就可以验证它。其余的逻辑取决于你。
#include <iostream>
#include <string>
int main() {
std::cout << "Enter a PIN Number: ";
std::string pinStr;
while(std::getline(std::cin,pinStr) && pinStr.size() != 4) {
std::cout << "Please enter a valid value\n";
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想以整数形式存储它,将整数保存在 an 中std::vector可能会很有用。您可以轻松地做到这一点(循环展开是为了清楚起见):
#include <iostream>
#include <string>
#include <vector>
int main() {
std::cout << "Enter a PIN Number: ";
std::string pinStr;
while(std::getline(std::cin,pinStr) && pinStr.size() != 4 ) {
std::cout << "Please enter a valid value\n";
}
std::vector<int> pin;
pin[0] = pinStr[0] - '0';
pin[1] = pinStr[1] - '0';
pin[2] = pinStr[2] - '0';
pin[3] = pinStr[3] - '0';
//pin now holds the integer value.
for(auto& i : pin)
std::cout << i << ' ';
}
Run Code Online (Sandbox Code Playgroud)
你可以看到它在这里运行