A C ++ fájlban található wcerr objektum osztály ostream objektuma. A szabványos C hiba kimeneti adatfolyam stderrhez van társítva.
Különbség a cerr és a wcerr között
cerr
char (keskeny karakter) karaktertípusként használja. Használható ASCII és ANSI karakterekhez.
A nemzetközivé váláshoz Unicode karakterláncokra van szükségünk, amelyek nem illenek a char-ba. wcerr
használ wchar_t
(széles karakter) és használható Unicode karakterekhez.
Különbség a wcout és a wcerr között
Kezdő C ++ programozó használja cout
, és wcout
megjeleníti a hiba a szokásos kimenetet, hogy debug a programok, de ez mindig jó gyakorlat használatának cerr
és wcerr
a megjelenítési hibák.
Ennek oka, hogy ahelyett, hogy megjelenítené a hiba folyamát a képernyőn, később megváltoztathatja a hiba folyamát, hogy a hibákat fájlba írja.
wcerr nyilatkozat
extern wostream wcerr;
A "header file"> header fájlban van meghatározva.
Az wcerr
objektum inicializálása biztosított egy típusú objektum első ios_base::Init
építése során vagy azelőtt . Az wcerr
objektum felépítése után a kifejezés (wcerr.flags & unitbuf)
nem nulla, ami azt jelenti, hogy az ezekhez a folyamobjektumokhoz küldött kimenet azonnal az operációs rendszerbe kerül. Szintén wcerr.tie() == &wcout
azaz wcerr.tie()
visszatér, &wcout
ami azt jelenti, hogy wcout.flush()
minden kimeneti művelet előtt végrehajtásra kerül wcerr
.
A "wc" wcerr
kifejezés "széles karakterre" utal, az "err" pedig "hibát" jelent, ezért a wcerr "széles karakter hibát" jelent. Az wcerr
objektumot a beszúrási operátorral (<<) együtt használjuk a karakterfolyam megjelenítéséhez. Az általános szintaxis:
wcerr << varName;
vagy
wcerr << "Néhány húr";
Az extrakciós operátor többször is használható változók, húrok és manipulátorok (például endl
) kombinációjával :
wcerr << var1 << "Néhány karakterlánc" << var2 << endl;
Példa: Hogyan működik a wcerr?
#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; )
A program futtatásakor a kimenet a következő lesz: (ha a fájlt nem sikerült megnyitni)
Hiba történt a data.txt fájl megnyitásakor