Objek wcerr di C ++ adalah objek kelas ostream. Ia dikaitkan dengan stderr aliran output ralat C standard.
Perbezaan antara cerr dan wcerr
cerr
menggunakan 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. wcerr
menggunakan wchar_t
(watak luas) dan boleh digunakan untuk watak Unicode.
Perbezaan antara wcout dan wcerr
Pengaturcara pemula C ++ menggunakan cout
dan wcout
untuk menunjukkan kesalahan menggunakan output standard untuk men-debug program mereka, tetapi selalu menjadi amalan yang baik untuk menggunakan cerr
dan wcerr
memaparkan 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 wcerr
objek dipastikan akan dimulakan pada atau sebelum masa pertama objek jenis ios_base::Init
dibina. Setelah wcerr
objek 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() == &wcout
iaitu wcerr.tie()
pengembalian &wcout
yang 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 wcerr
objek 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