Українська
Підсумки
Висновки
Потік пов’язує джерело або приймач байтів з операціями, станом помилок і параметрами форматування. Стани good, eof, fail і bad перевіряють після кожної операції, а цикл читання записують через саму спробу читання. RAII закриває файл, але для важливого результату потрібні явний close і перевірка стану. Текстовий формат визначає поля, діапазони значень і реакцію на неправильний рядок, тому запис приймають лише після повного розбору. Двійковий режим вимикає текстові перетворення, але не створює переносимого формату: логічні поля серіалізують окремо, а зміщення записів обчислюють за розміром формату. filesystem::path подає шлях як структуру, а відносний шлях залежить від робочого каталогу процесу. Під час обходу каталогу кожну операцію перевіряють через виняток або error_code. Запис у тимчасовий файл із подальшим перейменуванням зменшує ризик обірваного результату, але не дає всіх гарантій надійності.
Питання для самоперевірки
- Чому eof перевіряють після спроби читання?
- Чим clear відрізняється від seekg?
- Чому close із перевіркою потрібен попри RAII?
- Чим app відрізняється від ate?
- Чому простий split комою не є повним CSV-парсером?
- Чому
trivially_copyableне означає переносиму серіалізацію? - Як обчислити зміщення запису після заголовка?
- Від чого залежить відносний шлях у Visual Studio?
- Як перевіряти помилки під час increment ітератора каталогу?
- Які гарантії не забезпечує запис у tmp з подальшим rename?
Контрольні питання до лабораторної роботи
- Які байти та кодування визначає ваш формат?
- Чим пошкоджений запис відрізняється від кінця файла?
- Які операції можуть перезаписати наявний результат?
- Чи перевірено закриття потоку?
- Чому exists перед операцією не гарантує її успіху?