Функция проверки ввода, принимающая разные типы данных - C (СИ)

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

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

Мне нужно написать функцию для проверки ввода, но так чтобы она могла делать свою работу, получая разные типы данных(char, int, float etc...). Я еще недостаточно понимаю ADT чтоб сделать самому, но по идее я хочу внутри этой функции запускать еще atoi, isalpha и isdigit. Никак не могу сообразить как функция должна узнавать какой тип данных ей передали.

Решение задачи: «Функция проверки ввода, принимающая разные типы данных»

textual
Листинг программы
  1. #define InputCheck(arg, type) type##InputCheck(arg)
  2.  
  3. void intInputCheck(int a)
  4. {
  5.     ...
  6. }
  7.  
  8. void floatInputCheck(float a)
  9. {
  10.     ...
  11. }
  12. ...
  13.  
  14. int main()
  15. {
  16.     float f = 0.5;
  17.     InputCheck(3, int);
  18.     InputCheck(f, float);
  19. }

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

  1. В данном коде определена макро-функция InputCheck, которая принимает два аргумента: arg и type.
  2. type представляет собой строку, которая определяет тип данных, который должен быть проверен.
  3. Макро-функция InputCheck затем вызывает функцию проверки ввода, соответствующую типу данных.
  4. В функции main определены две переменные: int и float, которые будут использоваться для проверки ввода.
  5. Затем вызывается функция InputCheck с аргументами 3 и int, что вызывает функцию intInputCheck для проверки ввода целого числа.
  6. Затем вызывается функция InputCheck с аргументами f и float, что вызывает функцию floatInputCheck для проверки ввода числа с плавающей точкой.
  7. Код не содержит обработку ошибок или возвращаемых значений от функций проверки ввода.
  8. Данный код предполагает, что функции intInputCheck и floatInputCheck выполняют какую-то проверку ввода, но без их реализации невозможно точно сказать, что именно они делают.

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы