C ++ wcerr - C ++ Τυπική βιβλιοθήκη

Το αντικείμενο wcerr στο C ++ είναι ένα αντικείμενο κατηγορίας ostream. Συνδέεται με την τυπική ροή εξόδου σφάλματος C stderr.

Διαφορά μεταξύ cerr και wcerr

cerrχρησιμοποιεί char (στενό χαρακτήρα) ως τύπο χαρακτήρα. Μπορεί να χρησιμοποιηθεί για χαρακτήρες ASCII και ANSI.

Για διεθνοποίηση, χρειαζόμαστε χορδές Unicode που δεν ταιριάζουν στο char. wcerrχρησιμοποιεί wchar_t(ευρύ χαρακτήρα) και μπορεί να χρησιμοποιηθεί για χαρακτήρες Unicode.

Διαφορά μεταξύ wcout και wcerr

Οι προγραμματιστές για αρχάριους C ++ χρησιμοποιούν coutκαι wcoutγια να εμφανίζουν το σφάλμα χρησιμοποιώντας την τυπική έξοδο για να διορθώσουν τα προγράμματα τους, αλλά είναι πάντα καλή πρακτική η χρήση cerrκαι wcerrη εμφάνιση σφαλμάτων.

Αυτό συμβαίνει επειδή αντί να εμφανιστεί η ροή σφαλμάτων στην οθόνη, μπορείτε αργότερα να αλλάξετε τη ροή σφαλμάτων για να γράψετε τα σφάλματα σε ένα αρχείο.

δήλωση wcerr

 εξωτερικό wostream wcerr; 

Ορίζεται στο αρχείο κεφαλίδας "> αρχείο κεφαλίδας.

Το wcerrαντικείμενο διασφαλίζεται ότι θα αρχικοποιηθεί κατά τη διάρκεια ή πριν από την πρώτη φορά που κατασκευάζεται ένα αντικείμενο τύπου ios_base::Init. Μετά την wcerrκατασκευή του αντικειμένου, η έκφραση (wcerr.flags & unitbuf)είναι μηδενική, πράγμα που σημαίνει ότι κάθε έξοδος που αποστέλλεται σε αυτά τα αντικείμενα ροής μεταφέρεται αμέσως στο λειτουργικό σύστημα. Επίσης wcerr.tie() == &wcoutδηλ. wcerr.tie()Επιστροφές &wcoutπου σημαίνει ότι wcout.flush()εκτελείται πριν από οποιαδήποτε λειτουργία εξόδου wcerr.

Το "wc" wcerr αναφέρεται στο "ευρύ χαρακτήρα" και το "err" σημαίνει "σφάλμα", άρα το wcerr σημαίνει "σφάλμα μεγάλου χαρακτήρα". Το wcerrαντικείμενο χρησιμοποιείται μαζί με τον τελεστή εισαγωγής (<<) για την εμφάνιση ροής χαρακτήρων. Η γενική σύνταξη είναι:

 wcerr << varName;

ή

 wcerr << "Μερικές χορδές";

Ο τελεστής εξαγωγής μπορεί να χρησιμοποιηθεί περισσότερες από μία φορές με συνδυασμό μεταβλητών, συμβολοσειρών και χειριστών (όπως endl):

 wcerr << var1 << "Μερικές χορδές" << var2 << endl;

Παράδειγμα: Πώς λειτουργεί το 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; )

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι: (εάν το αρχείο δεν μπορούσε να ανοίξει)

 Σφάλμα κατά το άνοιγμα του αρχείου data.txt

ενδιαφέροντα άρθρα...