C ++ wcerr - C ++ Standardbibliothek

Das wcerr-Objekt in C ++ ist ein Objekt der Klasse ostream. Es ist dem Standard-C-Fehlerausgabestream stderr zugeordnet.

Unterschied zwischen cerr und wcerr

cerrverwendet 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. wcerrverwendet wchar_t(breites Zeichen) und kann für Unicode-Zeichen verwendet werden.

Unterschied zwischen wcout und wcerr

Anfänger-C ++ - Programmierer verwenden coutund wcoutzeigen den Fehler mithilfe der Standardausgabe an, um ihre Programme zu debuggen. Es wird jedoch immer empfohlen, Fehler zu verwenden cerrund wcerranzuzeigen.

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 wcerrwird sichergestellt, dass das Objekt während oder vor der ersten ios_base::InitErstellung eines Objekttyps initialisiert wird. Nachdem das wcerrObjekt 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() == &wcoutdh gibt wcerr.tie()zurück, &wcoutwas 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 wcerrObjekt 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

Interessante Beiträge...