В C вы будете делать это через то, что вы надеетесь избежать - повторяя код.Как вы знаете, C ++ делает это более удобным для шаблонов, однако это просто простой способ повторить код и основать его на другом типе.
Что-то, что может подойти вам, - это предоставить другойфункции класса, но не вызывать их напрямую.Вместо этого на основе командной строки определите, какие функции будут обрабатывать ваши данные, и назначьте их указателям на функции.Затем ваш цикл управления просто вызовет функции обработки, используя эти указатели.Очевидно, это будет включать в себя все, что вы делаете с данными, но вы также можете решить использовать отдельные функции ввода в зависимости от типа данных.
Редактировать: Как говорит Мэт, есть типы типов, которые хорошо продвигаются, и поэтому один блоккод будет работать нормально.Я подозреваю, что именно поэтому ваше назначение включает в себя работу с некоторым типом структуры.