C++ Academy · Pelajaran

Bekerja dengan std::cerr dan std::clog

Pisahkan diagnostik dan catatan dari keluaran program menggunakan aliran cerr dan clog

Pelajaran 4 dari 413 langkah

Bekerja dengan std::cerr dan std::clog adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Tiga Aliran Keluaran

Pustaka standar menyediakan tiga aliran keluaran yang telah ditentukan:

  • std::cout — keluaran standar dengan buffer
  • std::cerr — kesalahan standar tanpa buffer
  • std::clog — kesalahan standar dengan buffer

std::cerr: Kesalahan dan Peringatan

std::cerr menulis ke stderr dan bersifat tanpa penyangga—keluaran muncul segera, bahkan jika program langsung mengalami kerusakan.

std::cerr << "Error: file not found\n";

std::clog: Catatan Berpenyangga

std::clog juga menulis ke stderr, tetapi menggunakan penyangga seperti cout. Gunakan untuk catatan rutin yang tidak masalah jika mengalami sedikit keterlambatan.

std::clog << "[info] processing record 42\n";

Mengapa Ada Dua Aliran ke stderr?

Kesalahan perlu muncul segera agar pengguna melihatnya sebelum program mengalami kerusakan. Catatan memiliki volume tinggi—menyangganya menjaga kinerja tetap memadai.

Mengalihkan Keluaran

Pada baris perintah, stdout dan stderr menuju saluran yang terpisah. Alihkan keduanya secara terpisah.

# Send stdout to a file, stderr to the terminal
./app > out.txt

# Send stderr to a file too
./app 2> err.txt

# Send both to one file
./app > all.txt 2>&1

Keluaran Diagnostik vs Data

Menurut konvensi, data yang dapat dibaca mesin dikirim ke stdout; diagnostik untuk manusia dikirim ke stderr. Dengan begitu, alur pemrosesan dapat berjalan dengan bersih.

Menghubungkan Aliran

cin secara bawaan terhubung ke cout—membaca dari cin terlebih dahulu mengosongkan penyangga cout. cerr juga terhubung ke cout dengan cara yang sama.

Pencatatan Kustom dengan Tingkatan

Bungkus clog dalam fungsi pembantu untuk tingkatan pencatatan—INFO, WARN, ERROR. Ini menjaga pesan pencatatan tetap konsisten.

void warn(const std::string& msg) {
    std::clog << "[WARN] " << msg << "\n";
}

void error(const std::string& msg) {
    std::cerr << "[ERROR] " << msg << "\n";
}

Kinerja: cerr Lambat

Karena cerr mengosongkan penyangga pada setiap operasi, penulisan berulang menjadi lambat. Untuk pencatatan dalam jumlah besar, pilih clog atau pustaka pencatatan khusus.

Mengosongkan Penyangga clog secara Manual

Jika ingin keluaran clog muncul segera untuk penelusuran kesalahan, kosongkan penyangganya secara manual.

std::clog << "checkpoint" << std::flush;

Menulis ke Aliran Berkas

Pola yang sama berlaku pada aliran berkas. Buka berkas catatan dengan std::ofstream dan alirkan data ke dalamnya seperti pada clog.

std::ofstream logFile("app.log");
logFile << "Application started\n";

Pemeriksaan Singkat

Aliran standar mana yang secara otomatis dikosongkan setelah setiap penulisan?

Ringkasan

Gunakan std::cout untuk keluaran biasa, std::cerr untuk kesalahan mendesak tanpa penyangga, dan std::clog untuk catatan berpenyangga. Alihkan semuanya secara terpisah di terminal dengan > dan 2>.

Gratis untuk memulai

Belajar C++ dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Bekerja dengan std::cerr dan std::clog” gratis?

Ya — teks lengkap “Bekerja dengan std::cerr dan std::clog” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Bekerja dengan std::cerr dan std::clog”?

Pisahkan diagnostik dan catatan dari keluaran program menggunakan aliran cerr dan clog Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Bekerja dengan std::cerr dan std::clog” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menggunakan std::cin dan std::cout dengan Benar
  2. Memformat Keluaran dengan iomanip
  3. Membaca Input dengan Aman menggunakan getline
  4. Bekerja dengan std::cerr dan std::clog
← Kembali ke C++ Academy