Я пытаюсь подтвердить ввод данных пользователем о том, насколько большим должен быть массив.Я проверяю, есть ли size < 1
и есть ли в коде десятичное место с помощью:
int size = 0;
do {
size = 0;
cout << "Input an array size for your words array: ";
cin >> size;
if (floor(size) != size || size < 1) {
cout << "Hey that's not a valid size!\n";
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
} while (floor(size) != size || size < 1);
Проблема, с которой я сталкиваюсь, заключается в том, что числа, такие как -1, 0, .3.9 все подтверждают нормально, но числа как 1.2 будут иметь size == 1
, тогда как .2 остается в очереди.Есть ли способ убрать эти десятичные дроби?Я попытался использовать только size < 1
и логическое значение пола само по себе.
Спасибо!