C ++ wcerr - Libreria standard C ++

L'oggetto wcerr in C ++ è un oggetto della classe ostream. È associato al flusso di output degli errori standard C stderr.

Differenza tra cerr e wcerr

cerrusa char (carattere stretto) come tipo di carattere. Può essere utilizzato per i caratteri ASCII e ANSI.

Per l'internazionalizzazione, abbiamo bisogno di stringhe Unicode che non si adattano a char. wcerrutilizza wchar_t(carattere ampio) e utilizzabile per i caratteri Unicode.

Differenza tra wcout e wcerr

I programmatori C ++ principianti utilizzano coute wcoutper visualizzare l'errore utilizzando lo standard output per eseguire il debug dei loro programmi, ma è sempre buona norma utilizzare cerre wcerrvisualizzare gli errori.

Questo perché invece di mostrare il flusso di errore sullo schermo, è possibile modificare successivamente il flusso di errore per scrivere gli errori in un file.

dichiarazione wcerr

 wostream wcerr esterno; 

È definito nel file di intestazione "> file di intestazione.

Si wcerrgarantisce che l' oggetto venga inizializzato durante o prima della prima costruzione di un oggetto di tipo ios_base::Init. Dopo che l' wcerroggetto è stato costruito, l'espressione (wcerr.flags & unitbuf)è diversa da zero, il che significa che qualsiasi output inviato a questi oggetti flusso viene immediatamente scaricato nel sistema operativo. Inoltre, wcerr.tie() == &wcoutie wcerr.tie()ritorna, il &wcoutche significa che wcout.flush()viene eseguito prima di qualsiasi operazione di output wcerr.

Il "wc" in si wcerr riferisce a "carattere ampio" e "err" significa "errore", quindi wcerr significa "errore di carattere ampio". L' wcerroggetto viene utilizzato insieme all'operatore di inserimento (<<) per visualizzare un flusso di caratteri. La sintassi generale è:

 wcerr << varName;

o

 wcerr << "Some String";

L'operatore di estrazione può essere utilizzato più di una volta con una combinazione di variabili, stringhe e manipolatori (come endl):

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

Esempio: come funziona 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; )

Quando esegui il programma, l'output sarà: (se il file non può essere aperto)

 Errore durante l'apertura del file data.txt

Articoli interessanti...