Menu

Tree [929f32] deadline_0 /
 History

HTTPS access


File Date Author Commit
 .gitignore 2023-09-20 github-classroom[bot] github-classroom[bot] [80630d] Initial commit
 CMakeLists.txt 2023-09-27 rinnothing rinnothing [55784e] feat: add file reader (in read_file.cpp) and re...
 README.md 2023-09-20 github-classroom[bot] github-classroom[bot] [f65109] Add online IDE url
 exit_with_error.cpp 2023-09-29 rinnothing rinnothing [fb3e4e] reafactor: change exit(0) in exit_with_error.cp...
 exit_with_error.h 2023-09-29 rinnothing rinnothing [5534ef] refactor: delete unecessary includes and add sp...
 main.cpp 2023-09-29 rinnothing rinnothing [81c270] feat: add new functions ReadCharAndSeekLineEnd ...
 parse_arguments.cpp 2023-09-29 rinnothing rinnothing [929f32] refactor: move checks and gets from ParseArgume...
 parse_arguments.h 2023-09-29 rinnothing rinnothing [32af87] refactor: remove unused kEndOfString constant f...
 read_file.cpp 2023-09-29 rinnothing rinnothing [f5210f] refactor: rename lines field of Reader structur...
 read_file.h 2023-09-29 rinnothing rinnothing [f5210f] refactor: rename lines field of Reader structur...

Read Me

Open in Visual Studio Code

Лабораторная работа 1

Задача

Реализовать утилиту PrintFile выводящую в стандартный поток вывода содержимое(частичное содержимое)
для указанного файла.

Программа должна поддерживать следующие аргументы командной строки (опции):

-l, --lines=n вывести только n (только положительное) первых(последних) строк файл (необязательный аргумент, по-умолчанию выводим все)

-t, --tail вывод n последний строк файла (необязательный аргумент)

-d, --delimiter=c символ по которому определяется конец строки (нeобязательный, по-умолчанию '\n')

Название файла и опции передаются через аргументы командной строки в следующем формате:

PrintFile.exe [OPTION] filename

Примеры запуска программы:

PrintFile.exe filename

PrintFile.exe filename

PrintFile.exe --tail --lines=10 filename

PrintFile.exe -l 2 filename

PrintFile.exe -d '\t' filename

PrintFile.exe filename -t -l 10

Рекомендации

  • Стоит подумать о том, что размер файла может быть очень большим и значимо превышать размер оперативной памяти

  • Стоит подумать каким образом разбить программу на логичные функции

  • Не забывайте про CodeStyle

Дополнительная информация

Для реализации утилиты потребуется воспользоваться стандартной библиотекой вводы\вывода (описание). Пример использования

Пример того, как можно организовать парсинг аргументов командной строки, можно посмотреть здесь.

Deadline

  1. 03.10.23 24:00 - 0.8
  2. 10.10.23 24:00 - 0.65
  3. 17.10.23 24:00 - 0.5
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.