Как следать процерку на ввод целых чисел?

Ссылка скопирована
C#
4 мая 2026 1 ответ

Лидирующие, последующие пробелы, точки и другие знаки препинания, буквы...
В общем, разрешены только цифры и все.

Дополнительно:

Ответы:

Можно использовать strtol

int parse(char* str, long* result) {     char *end = NULL;     *result = strtol(str, &end, 10);     if (str == end || *end != '' || errno == ERANGE) {         return -1;     }     return 0; }

int parse(char* str, long* result) { char *end = NULL; *result = strtol(str, &end, 10); if (str == end || *end != '' || errno == ERANGE) { return -1; } return 0; }

Пример:

int main() {     long value;     if (parse("12313", &value)) {         printf("Ошибка");     } else {         printf("Результат: %ld", value);     } } // 123 -> Результат: 123 // 123.0 -> Ошибка

int main() { long value; if (parse("12313", &value)) { printf("Ошибка"); } else { printf("Результат: %ld", value); } } // 123 -> Результат: 123 // 123.0 -> Ошибка

try {   (int)variable } catch (...) {   // выводим ошибку }

try { (int)variable } catch (...) { // выводим ошибку }

  • изначально variable какого типа?
  • Алексей, аааа) там в сишке же есть "cstring" Всякие)) если есть std::string - то этот, можно ещё привести массив чаров(для этого метода отдельный создать)
  • Евгений Мартынов,
    int nm = 0;  if (scanf("%d", &nm))  {   // значит что число валидное }

    int nm = 0; if (scanf("%d", &nm)) { // значит что число валидное }

  • Евгений Мартынов, тут прям на сишке, всё по правилам))
  • Евгений Мартынов, нет в этом случае 1.0 будет пониматься как 1
  • Алексей,

    1.0

    Разрешены только цифры же? Точки не разрешены, как и запятые.
    Нужны дробные числа, используй double nm и %f

  • Это С, а не С++. Тут нет никаких исключений.
  • Александр Ананьев, ну тогда 2 вариант)

Ну, наверное проверить, что передаваемая строка содержит только цифры. И не забыть, что long integer имеет хоть большую, но конечную длину, соответственно ввод нужно проверять на длину - иначе первый же какер-недоучка попробует вас на зуб переполнением ввода.

long integer

man strtol
man strtoul

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Мария Код Ответ

Для проверки ввода целых чисел в PHP можно воспользоваться функцией is_int(). Однако, стоит учитывать, что данная функция не подходит для проверки значений, полученных из формы веб-страницы, так как они будут передаваться как строки. В таком случае, необходимо использовать функцию filter_var() с фильтром FILTER_VALIDATE_INT.

Пример кода для проверки ввода целых чисел:

$input = $_POST['number']; // Получаем значение из формы
 
// Проверяем, что введенное значение является целым числом
if (filter_var($input, FILTER_VALIDATE_INT)) {
    echo "Введенное значение - целое число";
} else {
    echo "Введенное значение не является целым числом";
}

$input = $_POST['number']; // Получаем значение из формы // Проверяем, что введенное значение является целым числом if (filter_var($input, FILTER_VALIDATE_INT)) { echo "Введенное значение - целое число"; } else { echo "Введенное значение не является целым числом"; }

Если вы хотите проверить, что введенное значение целое число и не превышает определенного диапазона, то можно воспользоваться дополнительными условиями:

$input = $_POST['number']; // Получаем значение из формы
 
// Проверяем, что введенное значение является целым числом и находится в диапазоне от 1 до 100
if (filter_var($input, FILTER_VALIDATE_INT) && $input >= 1 && $input <= 100) {
    echo "Введенное значение - целое число в диапазоне от 1 до 100";
} else {
    echo "Введенное значение не является целым числом или не находится в указанном диапазоне";
}

$input = $_POST['number']; // Получаем значение из формы // Проверяем, что введенное значение является целым числом и находится в диапазоне от 1 до 100 if (filter_var($input, FILTER_VALIDATE_INT) && $input >= 1 && $input <= 100) { echo "Введенное значение - целое число в диапазоне от 1 до 100"; } else { echo "Введенное значение не является целым числом или не находится в указанном диапазоне"; }

Таким образом, вы можете использовать функции filter_var() и is_int() для проверки ввода целых чисел и установки дополнительных условий, если это необходимо.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно