C ++ wcerr - Perpustakaan Standard C ++

Objek wcerr di C ++ adalah objek kelas ostream. Ia dikaitkan dengan stderr aliran output ralat C standard.

Perbezaan antara cerr dan wcerr

cerrmenggunakan char (watak sempit) sebagai jenis watak. Ia boleh digunakan untuk watak ASCII dan ANSI.

Untuk pengantarabangsaan, kita memerlukan rentetan Unicode yang tidak sesuai dengan char. wcerrmenggunakan wchar_t(watak luas) dan boleh digunakan untuk watak Unicode.

Perbezaan antara wcout dan wcerr

Pengaturcara pemula C ++ menggunakan coutdan wcoutuntuk menunjukkan kesalahan menggunakan output standard untuk men-debug program mereka, tetapi selalu menjadi amalan yang baik untuk menggunakan cerrdan wcerrmemaparkan kesalahan.

Ini kerana daripada menunjukkan aliran ralat ke layar, Anda kemudian dapat mengubah aliran kesalahan untuk menulis kesalahan ke file.

pengisytiharan wcerr

 luaran wostream wcerr; 

Ia ditakrifkan dalam header file "> header file.

The wcerrobjek dipastikan akan dimulakan pada atau sebelum masa pertama objek jenis ios_base::Initdibina. Setelah wcerrobjek itu dibina, ungkapannya (wcerr.flags & unitbuf)tidak nol, yang bermaksud bahawa setiap output yang dikirim ke objek aliran ini segera dialirkan ke sistem operasi. Juga wcerr.tie() == &wcoutiaitu wcerr.tie()pengembalian &wcoutyang bermaksud bahawa wcout.flush()ia dilaksanakan sebelum operasi output dihidupkan wcerr.

The "wc" di wcerr merujuk kepada "watak lebar" dan 'err' bermaksud "kesalahan", oleh itu wcerr bermaksud "kesalahan watak luas". The wcerrobjek digunakan bersama-sama dengan operator pemasukan (<<) untuk memaparkan strim aksara. Sintaks umum adalah:

 wcerr << varName;

atau

 wcerr << "Beberapa Rentetan";

Pengendali pengekstrakan dapat digunakan lebih dari sekali dengan kombinasi pemboleh ubah, rentetan dan manipulator (seperti endl):

 wcerr << var1 << "Beberapa Tali" << var2 << endl;

Contoh: Bagaimana wcerr berfungsi?

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wcerr << "Error while opening the file " << fileName << endl; return; )

Semasa anda menjalankan program, outputnya akan: (jika file tidak dapat dibuka)

 Ralat semasa membuka data.txt fail

Artikel menarik...