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.
Memetakan isi `<iostream>`: keluarga kelas istream/ostream, empat objek standar cout/cin/cerr/clog, abstraksi stream, serta perilaku buffer.
Buka → # Formatting OutputMengatur tampilan output secara presisi: width, fill, dan precision pada cout, serta std::format dan std::print sebagai cara modern C++20/23.
Buka → # ManipulatorMenggunakan 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::printMembentuk output yang type-safe dan mudah dibaca: format spec mini-language, argumen posisi, std::format_to, formatter custom, dan std::println.
Buka → # Input ValidationMenangani kegagalan cin: memahami state stream, memulihkan dengan clear() dan ignore(), validasi angka dalam loop, serta perilaku num_get.
Buka → # stringstreamMengenal <sstream>: istringstream untuk parsing, ostringstream untuk membangun string bertahap, dan pola pemakaian keduanya.
Buka → # File StreamsMembuka file dengan <fstream>: ifstream, ofstream, fstream, mode pembukaan ios::in/out/app/binary/trunc, is_open, dan penutupan otomatis lewat RAII.
Buka → # Membaca File TeksMembaca file teks dengan benar: getline per baris, operator>> per token, pola loop yang tepat, dan jebakan eof yang sering menghantui pemula.
Buka → # Menulis File TeksMenulis 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 BinerAkses file biner dengan ios::binary serta write/read bertumpu reinterpret_cast, termasuk risiko endianness, struct padding, dan portabilitasnya.
Buka → # Filesystem LibraryMengenal <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_iteratorMembedah std::filesystem::path: operator/, parent_path, filename, stem, extension, konversi string(), absolute versus relative, serta recursive_directory_iterator.
Buka → # Error Handling FileDua 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: PengantarKonsep 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 →