C ++ wcerr - C ++ standardowa biblioteka

Obiekt wcerr w C ++ jest obiektem klasy ostream. Jest on powiązany ze standardowym stderr strumienia wyjściowego błędu języka C.

Różnica między cerr i wcerr

cerrużywa char (wąski znak) jako typ znaku. Może być używany dla znaków ASCII i ANSI.

Do internacjonalizacji potrzebujemy ciągów Unicode, które nie pasują do znaku. wcerrużywa wchar_t(znak szeroki) i nadaje się do znaków Unicode.

Różnica między wcout i wcerr

Początkujący programiści C ++ używają couti wcoutwyświetlają błąd przy użyciu standardowego wyjścia do debugowania swoich programów, ale zawsze jest dobrą praktyką używanie cerri wcerrwyświetlanie błędów.

Dzieje się tak, ponieważ zamiast wyświetlać strumień błędów na ekranie, możesz później zmienić strumień błędów, aby zapisać błędy w pliku.

deklaracja wcerr

 extern wostream wcerr; 

Jest zdefiniowany w pliku nagłówkowym "> plik nagłówkowy.

wcerrObiektu zapewnia być inicjowane w trakcie lub przed pierwszym obiektem typu ios_base::Initjest wykonana. Po wcerrskonstruowaniu obiektu wyrażenie (wcerr.flags & unitbuf)ma wartość niezerową, co oznacza, że ​​wszelkie dane wyjściowe wysyłane do tych obiektów strumienia są natychmiast przesyłane do systemu operacyjnego. Również wcerr.tie() == &wcoutnp. wcerr.tie()Zwraca, &wcoutco oznacza, że wcout.flush()jest wykonywana przed jakąkolwiek operacją wyjściową wcerr.

„Wc” w wcerr odwołuje się do „szerokiego znaku”, a „err” oznacza „błąd”, stąd wcerr oznacza „szerokokątny błąd”. wcerrPrzedmiot jest stosowane wraz z operatorem wstawiania (<<) w celu wyświetlania strumienia znaków. Ogólna składnia to:

 wcerr << varName;

lub

 wcerr << "Some String";

Operator ekstrakcji może być używany więcej niż jeden raz z kombinacją zmiennych, łańcuchów i manipulatorów (takich jak endl):

 wcerr << var1 << "Some String" << var2 << endl;

Przykład: Jak dział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; )

Po uruchomieniu programu wynik będzie następujący: (jeśli nie można otworzyć pliku)

 Błąd podczas otwierania pliku data.txt

Interesujące artykuły...