整数输入仅限于四位数

B.K*_*.K. 6 c++ input

我在问一个问题,就是要求输入一个只包含四位数的帐号.这必须使用基本的初学者C++来完成.

我需要找出一种方法来将整数的输入限制为四位数.用户应该能够输入0043或9023或0001,它应该是可接受的值....

我想我知道如何使用字符串.... getline(cin,input)完成它然后检查input.length()== 4?

但是我不知道我怎么会用整数输入做这个.

Rap*_*ptz 1

像这样的东西应该有效。一旦用户输入了恰好四个字符的内容,您就可以验证它。其余的逻辑取决于你。

#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)

你可以看到它在这里运行