Ограничение пользовательского ввода числовыми значениями - PullRequest
0 голосов
/ 29 декабря 2018
printf("\n Quais os valores da Matriz B? \n");
for (i = 0; i < n_linhas_B; i++)
{
   for (j = 0; j < n_colunas_B; j++)
   {
     printf("\n Elemento [%d][%d]", i, j);
     matriz_B[i][j] = ler_comp();
   }
}
printf("\n >");

Я хочу, чтобы он принимал только ввод целочисленного типа, отображал сообщение об ошибке и возвращал вопрос, когда пользователь вводит символы или символы

1 Ответ

0 голосов
/ 30 декабря 2018
#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");
}

Выход: Вы ввели целочисленное значение Pls, введите целое значение Pls, введите целое значение Pls, введите целое значение

...