Objek tersumbat di C ++ adalah objek kelas ostream. Ia dikaitkan dengan stderr aliran output ralat C standard.
clog
dan cerr
, kedua-duanya dikaitkan dengan stderr
, tetapi berbeza dari cerr
segi arti aliran masuk clog
dan tidak diikat secara automatik cout
.
Output buffered lebih cekap daripada output yang tidak dibeli. Dalam kes output yang disangga, semua output disimpan ke dalam pemboleh ubah dan ditulis ke cakera sekaligus. Untuk output yang tidak dibeli, kita harus terus menulis ke cakera.
Output buffered tidak disukai untuk kesalahan kritikal. Sekiranya berlaku kerosakan sistem, mungkin terjadi situasi ketika output masih dalam penyangga dan tidak ditulis ke cakera dan pesan kesalahan tidak dapat diambil. Kami tidak mampu kehilangan data ralat sekiranya berlaku kerosakan sistem sehingga kami terus menulis kesalahan kritikal ke cakera walaupun lebih lambat.
clog
biasa digunakan untuk tujuan pembalakan. Untuk pembalakan peristiwa yang tidak kritikal, kecekapan lebih penting jadi clog
lebih disukai daripada cerr.
pengisytiharan tersumbat
penyumbat ostream luaran;
Ia ditakrifkan dalam header file "> header file.
The clog
objek dipastikan akan dimulakan pada atau sebelum masa pertama objek jenis ios_base::Init
dibina. clog
tidak terikat dengan aliran lain.
The "c" dalam clog merujuk kepada "watak", oleh itu clog bermaksud "log watak".
Objek tersumbat digunakan bersama dengan operator penyisipan (<<) untuk menampilkan aliran watak. Sintaks umum adalah:
tersumbat << varName;
atau
menyumbat << "Beberapa Rentetan";
Pengendali pengekstrakan dapat digunakan lebih dari sekali dengan kombinasi pemboleh ubah, rentetan dan manipulator (seperti endl
):
menyumbat << var1 << "Beberapa Tali" << var2 << endl;
Contoh: Bagaimana penyumbatan berfungsi?
#include #include using namespace std; int main() ( char fileName() = "data.txt"; ifstream infile(fileName); if(infile) cout << infile.rdbuf(); else clog << "Error while opening the file " << fileName << endl; return 0; )
Dalam program ini, clog digunakan untuk mengalirkan data log kerana kesalahan dalam kes ini tidak penting bagi aplikasi. Jadi penggunaan buffered output clog lebih cekap
Semasa anda menjalankan program, output akan menjadi (jika terdapat kesalahan semasa membuka fail):
Ralat semasa membuka data.txt fail