File | Date | Author | Commit |
---|---|---|---|
.gitignore | 2023-09-20 |
![]() |
[80630d] Initial commit |
CMakeLists.txt | 2023-09-27 |
![]() |
[55784e] feat: add file reader (in read_file.cpp) and re... |
README.md | 2023-09-20 |
![]() |
[f65109] Add online IDE url |
exit_with_error.cpp | 2023-09-29 |
![]() |
[fb3e4e] reafactor: change exit(0) in exit_with_error.cp... |
exit_with_error.h | 2023-09-29 |
![]() |
[5534ef] refactor: delete unecessary includes and add sp... |
main.cpp | 2023-09-29 |
![]() |
[81c270] feat: add new functions ReadCharAndSeekLineEnd ... |
parse_arguments.cpp | 2023-09-29 |
![]() |
[929f32] refactor: move checks and gets from ParseArgume... |
parse_arguments.h | 2023-09-29 |
![]() |
[32af87] refactor: remove unused kEndOfString constant f... |
read_file.cpp | 2023-09-29 |
![]() |
[f5210f] refactor: rename lines field of Reader structur... |
read_file.h | 2023-09-29 |
![]() |
[f5210f] refactor: rename lines field of Reader structur... |
Реализовать утилиту 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
Для реализации утилиты потребуется воспользоваться стандартной библиотекой вводы\вывода (описание). Пример использования
Пример того, как можно организовать парсинг аргументов командной строки, можно посмотреть здесь.