将用户输入限制为数值

时间:2018-12-29 13:42:05

标签: c++ visual-c++ scanf

{{1}}

我希望它只接受整数类型的输入,并显示错误消息并在用户插入字符或符号时环回问题

1 个答案:

答案 0 :(得分:0)

#include <iostream>

#define print(x) std::cout << x << std::endl

void validate(void* ptr, int value);
void validate(void* ptr, char* value);

int main() {

    //Int
    int variable1 = 5;
    validate(&variable1, variable1);
    //Float
    float variable2 = 5.5;
    validate(&variable2, variable2);
    //Double
    double variable3 = 5.56;
    validate(&variable3, variable3);
    //Char
    char* variable4 = "5";
    validate(&variable4, variable4);

    std::cin.get();
}

void validate(void* ptr, int value) {

    int* int_ptr = (int*)ptr;
    if(*int_ptr == value) {
        print("You entered in an integer");
    }else {
        print("Pls enter in an integer value");
    }
}

void validate(void* ptr, char* value) {
    print("Pls enter an integer value");
}

输出: 您输入的是整数 请输入一个整数 请输入一个整数 请输入一个整数值