Проверка на ввод цифр - C (СИ) (79239)

Узнай цену своей работы

Формулировка задачи:

Как реализовать проверку пользователя что он ввёл именно цифры ? Спасибо за ваши отзывы)
#include <stdio.h>
int pack(void);
int unpack(void);
 
int main(int argc, char *argv[])
{
    if (argc == 2),
        switch(argv[1][1])
        {
            case 'p': pack(); break;
            case 'u': unpack(); break;
            default : printf("некорректная опция\n"); 
        }
    else printf("вызов: %s [опция] /n опции:\n\t -p: упаковка;\n\t -u: распаковка\n",argv[0]);
    return 0;
}
 
int pack(void)
{
  unsigned c; /* код состояния */
  unsigned f; /* признак ошибки */
  unsigned b; /* признак занятости */
  unsigned n; /* количество байт */
  unsigned int UnitStateWord; /*слово состояния */
  /* ввод составных частей */
  printf("Введите код состояния (0 - 31) >");
  scanf("%d",&c);
  printf("Введите признак ошибки (0 / 1) >");
  scanf("%d",&f);
  printf("Введите признак занятости (0 / 1) >");
  scanf("%d",&b);
  printf("Введите кол-во переданных байт (0 - 255) >");
  scanf("%d",&n);
  /* формирование упакованного кода */
  UnitStateWord=((unsigned int)c&0x1F)<<11;
  UnitStateWord|=((unsigned int)f&1)<<9;
  UnitStateWord|=((unsigned int)b&1)<<8;
  UnitStateWord|=n&0xFF;
  /* вывод результата */
  printf("\nСлово состояния устройства = %04x\n", UnitStateWord);
  return 0;
}
int unpack(void)
{
  unsigned c; /* код состояния */
  unsigned f; /* признак ошибки */
  unsigned b; /* признак занятости */
  unsigned n; /* количество байт */
  unsigned int UnitStateWord; /* слово состояния*/
  /* ввод слова состояния устройства */
  printf("Введите cлово состояния устройства \n");
  printf("(16-ричное число от 0 до 0xFFFF) >");
  scanf("%x",&UnitStateWord);
  /* Выделение составных частей */
  c=(UnitStateWord>>11)&0x1F;
  f=(UnitStateWord>>9)&1;
  b=(UnitStateWord>>8)&1;
  n=UnitStateWord&0xFF;
  /* вывод результатов */
  putchar('\n');
  printf("Код состояния              = %d\n",c);
  printf("Признак ошибки             = %d\n",f);
  printf("Признак занятости          = %d\n",b);
  printf("Количество переданных байт = %d\n",n);
  return 0;
}

Решение задачи: «Проверка на ввод цифр»

textual
Листинг программы
  unsigned c; /* код состояния */
  unsigned f; /* признак ошибки */
  unsigned b; /* признак занятости */
  unsigned n; /* количество байт */

Объяснение кода листинга программы

  1. В коде присутствуют переменные: c, f, b, n.
  2. Переменная c имеет тип данных unsigned, что означает беззнаковое целое число.
  3. Переменная f имеет тип данных unsigned, что означает беззнаковое целое число.
  4. Переменная b имеет тип данных unsigned, что означает беззнаковое целое число.
  5. Переменная n имеет тип данных unsigned, что означает беззнаковое целое число.
  6. Значение переменной c не определено и требует инициализации.
  7. Значение переменной f не определено и требует инициализации.
  8. Значение переменной b не определено и требует инициализации.
  9. Значение переменной n не определено и требует инициализации.
  10. Код может использоваться для проверки ввода цифр.
  11. Код может быть частью функции или программы, которая обрабатывает пользовательский ввод.
  12. Код может быть использован для проверки корректности ввода данных в базу данных.
  13. Код может быть использован для проверки корректности ввода данных в файл.
  14. Код может быть использован для проверки корректности ввода данных в алгоритм.
  15. Код может быть использован для проверки корректности ввода данных в систему.
  16. Код может быть использован для проверки корректности ввода данных в программу.
  17. Код может быть использован для проверки корректности ввода данных в игру.
  18. Код может быть использован для проверки корректности ввода данных в систему управления.
  19. Код может быть использован для проверки корректности ввода данных в приложение.
  20. Код может быть использован для проверки корректности ввода данных в устройство.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5