Написать программу, генерирующую форматированную таблицу
Входной текстовый файл:
<=>
Vasya ! 100
Petya OMG 2
A
AA BBBBB
Создать функцию печати таблицы.
enum Formatting {
LEFT, RIGHT, CENTER
};
void print_table(ostream &os, const std::vector<Formatting> &columns,
const std::vector<std::vector<std::string> > &table);
Аргумент columns
задаёт форматирование колонок таблицы, а также фиксирует их количество. table
представляет из себя вектор строк, каждая из которых состоит из множества колонок. Если строка по количеству элементов меньше, чем размер columns
, недостающие элементы считаются пустыми. Если, наоборот, больше, то лишние элементы игнорируются. Ширина каждой колонки определяется по максимальной длине ячейки, принадлежащей этой колонке.
Для отладки и проверки работы функции print_table
реализовать программу, которая читает таблицу из файла и выводит её в другой файл. Первая строка файла состоит из символов <
, >
, =
, которые задают форматирование. Остальные строки представляют собой строки таблицы (колонки разделены символом табуляции).
Текстовый файл (результат работы программы для вышеописанных входных данных)
+-------+-------+-----+
| Vasya | ! | 100 |
+-------+-------+-----+
| Petya | OMG | 2 |
+-------+-------+-----+
| A | | |
+-------+-------+-----+
| AA | BBBBB | |
+-------+-------+-----+