Завершено
5
05.04.2020, 10:17
27.04.2020, 10:53
Разработать программу, читающую конфигурацию из текстового файла.
Конфигурационный файл представляет собой текстовый файл, где строки имеют формат ключ значение. И ключ, и значение представляют собой строки:
name foo
value 20
Лишние пробелы игнорируются, также допустимы пустые строки:
name foo
value 20
Допустимы комментарии:
foo 200 # 400
#bar 400
Все символы, начиная с #, считаются пробельными и игнорируются.
Для задания значений с пробелами можно использовать следующую форму:
name " Vasya Pupkin " # пробелы в начале и конце строки
spaces ' ' # здесь 5 пробелов
Строки, содержащие символы ' и ", могут быть записаны следующим образом:
double_quote '"'
single_quote "'"
both_quotes "'\""
Обратная косая черта \ играет роль escape-символа (аналогично C) и позволяет задавать следующие спецсимволы (при употреблении внутри закавыченной строки "…" или '…'):
\' – одиночная кавычка;\" – двойная кавычка;\n – символ перевода строки (ASCII-код 10);\t – символ табуляции (ASCII-код 9).\\ — сам символ обратной косой черты.Реализовать программу которая бы читала конфигурационный файл из входного файла и записывала результат в выходной файл.
Ошибки, связанные с неверным синтаксисом, нужно также выводить в выходной файл, но в самом конце.
Конфигурация
<ключ> - <значение>
...
Ошибки
<строка с неверным синтаксисом 1>
<строка с неверным синтаксисом 2>
...
Для всех разработанных модулей должны быть созданы наборы unit тестов. Функций ввода/вывода нужно тестировать с помощью std::stringstream.