Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

CSV Reader

(Время: 1 сек. Память: 16 Мб Сложность: 31%)

CSV (от англ. Comma-Separated Values – значения, разделённые запятыми) – текстовый формат, предназначенный для представления табличных данных.

Описание формата:

Каждая строка файла – это одна строка таблицы. Строки не могут быть пустыми. Каждая строка заканчивается символом перевода строки.

aaa,bbb,ccc
xxx,yyy,zzz

Каждая строка содержит одну или более ячеек, разделенных запятыми. Разные строки могут содержать разное количество ячеек. Значение ячейки может быть пустым. Пробелы являются частью значения ячейки и не должны игнорироваться. После последней ячейки запятая не ставится.

aaa,a and b,bbb
aaa„ccc,ddd

Если значение содержит запятую, оно обязательно обрамляется двойными кавычками. В противном случае двойные кавычки могут отсутствовать.

aaa,"bbb","c , c"

Если обрамленное значение содержит двойные кавычки – они представляются в виде двух двойных кавычек подряд.

"aaa","a ""and"" b"

Ваша задача – написать программу, которая будет читать данные в CSV формате и выводить их на печать в отформатированном виде.

Входные данные

Входной файл INPUT.TXT имеет CSV формат и содержит не более 100 непустых строк. Каждая строка содержит не более 100 символов. Допустимые символы: строчные и прописные английские буквы, цифры, знаки препинания (точка, запятая, вопросительный и восклицательный знак, двоеточие, точка с запятой, двойные кавычки) и пробелы.

Выходные данные

В выходной файл OUTPUT.TXT выведите информацию из файла, отформатированную по следующим правилам:

  • каждая строка содержит одинаковое количество ячеек. Строки могут дополняться справа необходимым количеством пустых ячеек;
  • ширина каждого столбца подбирается автоматически по ширине самого длинного значения;
  • остальные значения выравниваются по левому краю и дополняются справа необходимым количеством пробелов;
  • разделитель между ячейками в строке – вертикальная черта «|».

Пример

INPUT.TXTOUTPUT.TXT
1
a,b,c,d,e
"aa",,"cc",dd
"a,a,a","b,b","c"
"a,""a"",""","a and ""b""",,a"b
a      |b        |c |d  |e
aa     |         |cc|dd | 
a,a,a  |b,b      |c |   | 
a,"a","|a and "b"|  |a"b| 

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 2017 / 2018
 2018 / 2019
 2021 / 2022
 2022 / 2023
 A. Ближайшее нечётное
 B. Бобры-Зомби
 C. CSV Reader
 D. Суперпозиция
 E. Системы счисления
 F. Раздел империи
 G. Крыша
 H. Хардкорный массив
 I. Виталя и Рома
 J. Квадратов много не бывает

Красноярский краевой Дворец пионеров, (c)2006 - 2024, ИНН 246305493507, E-mail: admin@acmp.ru