Program perlu berkomunikasi dengan dunia luar: terminal, file teks, hingga file biner. Kita mempelajari stream dan manipulator, stringstream, pembacaan dan penulisan file, serta std::filesystem untuk bekerja dengan path dan direktori.

# Peta iostream

Memetakan isi `<iostream>`: keluarga kelas istream/ostream, empat objek standar cout/cin/cerr/clog, abstraksi stream, serta perilaku buffer.

Buka →
# Formatting Output

Mengatur tampilan output secara presisi: width, fill, dan precision pada cout, serta std::format dan std::print sebagai cara modern C++20/23.

Buka →
# Manipulator

Menggunakan manipulator dari <iomanip> dan <ios>: setw, setprecision, fixed, setfill, left/right, boolalpha, dan hex/dec/oct, plus perbandingan endl dengan '\n'.

Buka →
# std::format dan std::print

Membentuk output yang type-safe dan mudah dibaca: format spec mini-language, argumen posisi, std::format_to, formatter custom, dan std::println.

Buka →
# Input Validation

Menangani kegagalan cin: memahami state stream, memulihkan dengan clear() dan ignore(), validasi angka dalam loop, serta perilaku num_get.

Buka →
# stringstream

Mengenal <sstream>: istringstream untuk parsing, ostringstream untuk membangun string bertahap, dan pola pemakaian keduanya.

Buka →
# File Streams

Membuka file dengan <fstream>: ifstream, ofstream, fstream, mode pembukaan ios::in/out/app/binary/trunc, is_open, dan penutupan otomatis lewat RAII.

Buka →
# Membaca File Teks

Membaca file teks dengan benar: getline per baris, operator>> per token, pola loop yang tepat, dan jebakan eof yang sering menghantui pemula.

Buka →
# Menulis File Teks

Menulis file teks dengan aman: ofstream mode trunc versus app, pemeriksaan keberhasilan tulis, flush, penamaan file, dan prinsip tidak menimpa data penting.

Buka →
# Membaca dan Menulis File Biner

Akses file biner dengan ios::binary serta write/read bertumpu reinterpret_cast, termasuk risiko endianness, struct padding, dan portabilitasnya.

Buka →
# Filesystem Library

Mengenal <filesystem> (C++17): namespace std::filesystem, path, create_directory, exists, file_size, directory_iterator, dan remove untuk mengelola direktori serta file.

Buka →
# path dan directory_iterator

Membedah std::filesystem::path: operator/, parent_path, filename, stem, extension, konversi string(), absolute versus relative, serta recursive_directory_iterator.

Buka →
# Error Handling File

Dua gaya kegagalan operasi file: exception filesystem_error versus overload std::error_code, pemeriksaan exists, masalah izin, dan pola tangguh membaca file dengan pesan yang jelas.

Buka →
# Serialization: Pengantar

Konsep serialisasi: menyimpan vector<struct> ke file teks berlabel dan memuatnya kembali persis (round-trip), plus gambaran format biner dan library eksternal seperti cereal dan protobuf.

Buka →