Как правило, я предпочитаю, чтобы входные данные поступали из файла (например, начальные условия выполнения, общее количество временных шагов и т. Д.), А входные данные флага поступают из командной строки (например, имя входного файла, имя выходного файла и т. д.). Это позволяет архивировать и использовать файлы снова, и позволяет встраивать комментарии в файл, чтобы помочь объяснить входные данные.
Если входной файл имеет обычный формат:
Для синтаксического анализа прочитайте полную строку из файла и используйте sscanf для «разбора» строки на переменные.
Если входной файл имеет неправильный формат:
Исправьте формат файла, чтобы он был регулярным (если это вариант).
Если нет, то strtof и strtod - лучшие варианты.