Интерпретатор CSV файлов умеет читать CSV таблицу из файла и обрабатывать формулы, вычисляя значения в ячейках таблицы. Если в ходе работы интерпретатора не возникло ошибок, обработанная таблица выводится в консоль в формате CSV.
-
В каждом ряду таблицы должно быть одинаковое количество элементов.
-
Названия столбцов могут содержать только буквы латинского алфавита и должны быть уникальными. Пропуск значения допускается только в левой верхней ячейке.
-
Строки нумеруются целыми положительными числами, номера строк должны быть уникальными.
-
В ячейках CSV-файла могут хранится или целые числа или выражения вида
= ARG1 OP ARG2
где ARG1 и ARG2 – целые числа или адреса ячеек в формате Имя_колонки Номер_строки, а OP – арифметическая операция из списка: +, -, *, /.
- Выходные данные - таблица с посчитанными целочисленными значениями. (Деление будет так же производиться целочисленно.)
- Все пробельные символы (в начале, конце и середине) игнорируются.
Компиляция:
g++ main.cpp Csv.cpp -std=c++17 -o csvreaderили
clang++ main.cpp Csv.cpp -std=c++17 -o csvreaderТак же можно собрать проект при помощи CMake.
Запуск:
./csvreader (path/)file.csvСписок тестов - tests.txt
Тесты и их решения - test-data/test-name.csv и test-data/test-name.sol
Под Linux можно запустить скрипт run-test-data.sh, проверяющий работу программы на всех тестах из tests.txt
./run-test-data.sh csvreader