Загрузка...

Скрипт на проверку пользовательського ввода

Тема в разделе C/C++ создана пользователем SaintStellar 29 янв 2022. 237 просмотров

  1. SaintStellar
    SaintStellar Автор темы 29 янв 2022 0 17 ноя 2021
    У кого есть скрипт что проверяет пользовательский ввод и отсеевает все что не есть цифрами, даже виражения что состоят из цифр и букв, после чего просит ввести значение повторно?
     
  2. throwyourfears
    throwyourfears 29 янв 2022 Заблокирован(а) 386 8 апр 2021
    SaintStellar, Тебе нужно чтобы пользователь ввёл исключительно число?
     
    1. Посмотреть предыдущие комментарии (1)
    2. throwyourfears
      SaintStellar,
      C
      #define _CRT_SECURE_NO_WARNINGS

      #include <iostream>

      using namespace std;

      int main(int argc, char* argv[])
      {
      int i;
      char* value = new char[1024];

      for (;;)
      {
      cin >> value;

      if (sscanf(value, "%d", &i) == 1)
      {
      delete[] value;
      break;
      }
      }

      cout << "int: " << i << endl;

      return 0;
      }

      Вывод:
      Код
      Test
      Wrap
      150
      int: 150
    3. SaintStellar Автор темы
      throwyourfears, спасибо, но есть несколько вопросов:
      1. Зачем объявлять это #define _CRT_SECURE_NO_WARNINGS
      2. Что означает параметр %d в sscanf
    4. Replacer
      SaintStellar,
      Макрос отключает предупреждения о использовании небезопасных функций из CRT (C Run Time)
      Флаг для вывода целого числа, если грубо. Вот так и кресты учите, хуле
  3. LVV
    ничего не понятно, нужно чтобы из строки убирались все кроме цифр?
     
  4. unnamed001
    unnamed001 1 фев 2022 5996 2 сен 2020
    Скрипты на си не пишут
     
    1. Посмотреть предыдущие комментарии (2)
    2. RendeR_inactive4180717
      unnamed001, да я писал и мне норм
    3. unnamed001
    4. RendeR_inactive4180717
      unnamed001, не скриптовый но писать можно

      #!/bin/bash msg_file=/dev/null #msg_file=/dev/stdout tmp_path=$HOME"/.cache/c++/" mkdir -p $tmp_path tmp_file=$1".c++" exe_file=$1".bin" if test $1 -nt $tmp_path$exe_file; then echo "Need to recompile.." > $msg_file tail -n +2 $1 > $tmp_path$tmp_file eval "g++ -o $tmp_path$exe_file $tmp_path$tmp_file > /dev/null 2>&1" if [ $? -eq 0 ] then echo "Compiled ok" > $msg_file else echo "Compile error" > $msg_file exit 255 fi fi eval "$tmp_path$exe_file $@1"
Top
Загрузка...