W + C objektas C ++ yra klasės ostream objektas. Tai siejama su standartine C klaidos išvesties srauto stderr.
Skirtumas tarp cerr ir wcerr
cerr
kaip simbolio tipą naudoja char (siaurą simbolį). Jis gali būti naudojamas ASCII ir ANSI simboliams.
Internacionalizacijai reikalingos „Unicode“ eilutės, kurios netelpa į simbolį. wcerr
naudoja wchar_t
(platus simbolis) ir naudojamas „Unicode“ simboliams.
Skirtumas tarp wcout ir wcerr
Pradedantysis C ++ programuotojų naudoti cout
ir wcout
rodyti, naudojant standartinę išvestį derinti savo programas klaidą, bet ji visada gera praktika naudoti cerr
ir wcerr
būtų galima parodyti klaidas.
Taip yra todėl, kad užuot rodę klaidų srautą ekrane, vėliau galite pakeisti klaidų srautą, kad klaidos būtų įrašytos į failą.
wcerr deklaracija
extern wostream wcerr;
Tai apibrėžiama antraštės faile "> header file.
wcerr
Užtikrinamas objektas turi būti inicializuoti metu arba prieš pirmą kartą, kurio tipas objektas ios_base::Init
yra sukonstruotas. Po to, kai wcerr
objektas yra sukonstruoti, išraiška (wcerr.flags & unitbuf)
yra ne nulis, tai reiškia, kad bet kuriame išėjime išsiųstas šie srautas objektai yra nuteka į operacinę sistemą. Taip pat, wcerr.tie() == &wcout
ty wcerr.tie()
grąžina, &wcout
o tai reiškia, kad wcout.flush()
jis vykdomas prieš bet kokią išvesties operaciją wcerr
.
„Wc“ wcerr
reiškia „platų simbolį“, o „klaida“ reiškia „klaida“, taigi wcerr reiškia „plati simbolių klaida“. wcerr
Objektas yra naudojamas kartu su įterpimo operatoriaus (<<) tam, kad būtų rodomas simbolių srautą. Bendroji sintaksė yra:
wcerr << varName;
arba
wcerr << „Kai kurios stygos“;
Ištraukimo operatorius gali būti naudojamas daugiau nei vieną kartą kartu su kintamaisiais, eilutėmis ir manipuliatoriais (pvz. endl
):
wcerr << var1 << "Kai kurios eilutės" << var2 << endl;
Pavyzdys: Kaip veikia „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; )
Paleidus programą, išvestis bus: (jei failo nepavyko atidaryti)
Klaida atidarant failą data.txt