Das wcerr-Objekt in C ++ ist ein Objekt der Klasse ostream. Es ist dem Standard-C-Fehlerausgabestream stderr zugeordnet.
Unterschied zwischen cerr und wcerr
cerr
verwendet char (schmales Zeichen) als Zeichentyp. Es kann für ASCII- und ANSI-Zeichen verwendet werden.
Für die Internationalisierung benötigen wir Unicode-Strings, die nicht in char passen. wcerr
verwendet wchar_t
(breites Zeichen) und kann für Unicode-Zeichen verwendet werden.
Unterschied zwischen wcout und wcerr
Anfänger-C ++ - Programmierer verwenden cout
und wcout
zeigen den Fehler mithilfe der Standardausgabe an, um ihre Programme zu debuggen. Es wird jedoch immer empfohlen, Fehler zu verwenden cerr
und wcerr
anzuzeigen.
Dies liegt daran, dass Sie den Fehlerstrom später ändern können, anstatt ihn auf dem Bildschirm anzuzeigen, um die Fehler in eine Datei zu schreiben.
wcerr Erklärung
extern wostream wcerr;
Es ist in der Header-Datei "> Header-Datei definiert.
Es wcerr
wird sichergestellt, dass das Objekt während oder vor der ersten ios_base::Init
Erstellung eines Objekttyps initialisiert wird. Nachdem das wcerr
Objekt erstellt wurde, ist der Ausdruck (wcerr.flags & unitbuf)
ungleich Null. Dies bedeutet, dass alle an diese Stream-Objekte gesendeten Ausgaben sofort an das Betriebssystem gesendet werden. Auch wcerr.tie() == &wcout
dh gibt wcerr.tie()
zurück, &wcout
was bedeutet, dass wcout.flush()
vor jeder Ausgabeoperation ausgeführt wird wcerr
.
Das "wc" in wcerr
bezieht sich auf "breites Zeichen" und "err" bedeutet "Fehler", daher bedeutet wcerr "breites Zeichenfehler". Das wcerr
Objekt wird zusammen mit dem Einfügeoperator (<<) verwendet, um einen Zeichenstrom anzuzeigen. Die allgemeine Syntax lautet:
wcerr << varName;
oder
wcerr << "Some String";
Der Extraktionsoperator kann mehrmals mit einer Kombination aus Variablen, Zeichenfolgen und Manipulatoren (wie endl
) verwendet werden:
wcerr << var1 << "Some String" << var2 << endl;
Beispiel: Wie funktioniert 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; )
Wenn Sie das Programm ausführen, lautet die Ausgabe: (wenn die Datei nicht geöffnet werden konnte)
Fehler beim Öffnen der Datei data.txt