Как проверить, является ли входной сигнал 3-значным числом для целочисленной переменной "а", если я хочу рассматривать такие числа, как "001", также как 3-значные числа?
Итак, я создаю проект обработки файлов на языке C++. В нем есть такая переменная: int roll.
Он должен иметь 3 цифры. Я думал использовать такие методы, как if(roll>99||roll<1000), но это бесполезно. Он принимает 091 как 2-значное число, 003 как 1-значное, очевидно. Итак, как я могу проверить, является ли входной сигнал 3-значным числом для целочисленной переменной "а", если я хочу рассматривать такие числа, как "001", также как 3-значные числа?
Что я уже пробовал:
Я думал использовать такие методы, как if(roll>99||roll<1000), но это бесполезно. Он принимает 091 как 2-значное число, 003 как 1-значное, очевидно.
PeejayAdams
Будет ли 52 действительным или его нужно будет ввести как 052? Если оба они действительны, то вы просто смотрите на любое число меньше 1000. Если это должно быть 052, то на самом деле вы ищете строку, а не int, регулярное выражение ([0-9][0-9][0-9]) это был бы правильный путь.
Leo Chapiro
Ваш вопрос не ясен: целое число не может выглядеть как "001", а только как "1", "001" - это строка. Вы можете преобразовать его в целое число: "001" -> 1. это то, что вам нужно?
Richard Deeming
Так в чем же дело if (roll > 0 && roll < 1000)
?
CPallini
Действительно. :-)
Я бы использовал
if ( roll >= 0 && roll < 1000)