C ++ wcrtomb () - C ++ Τυπική βιβλιοθήκη

Η συνάρτηση wcrtomb () στο C ++ μετατρέπει έναν μεγάλο χαρακτήρα σε στενή αναπαράσταση πολλαπλών byte.

Το wcrtomb () ορίζεται στο αρχείο κεφαλίδας.

πρωτότυπο wcrtomb ()

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

Η συνάρτηση wcrtomb () μετατρέπει τον ευρύ χαρακτήρα που παριστάνεται από το wc σε έναν στενό χαρακτήρα πολλαπλών byte και αποθηκεύεται στη διεύθυνση που υποδεικνύεται από το s.

  • Εάν το s δεν είναι μηδενικός δείκτης, η συνάρτηση wcrtomb () καθορίζει τον μέγιστο αριθμό bytes που απαιτείται για την αποθήκευση της αναπαράστασης πολλαπλών byte του wc και την αποθηκεύει στη θέση μνήμης που υποδεικνύεται από το s. Μπορούν να γραφτούν έως και MB_CUR_MAX byte. Η τιμή του ps ενημερώνεται όπως απαιτείται.
  • Εάν το s είναι μηδενικός δείκτης, η κλήση είναι ισοδύναμη με wcrtomb(buf, L'', ps)κάποια εσωτερική buffer buf.
  • Εάν wc == L'', αποθηκεύεται ένα μηδενικό byte.

wcrtomb () Παράμετροι

  • s: Δείκτης στη συστοιχία χαρακτήρων πολλαπλών byte για αποθήκευση του αποτελέσματος.
  • wc: Ευρύς χαρακτήρας για μετατροπή.
  • ps: Δείκτης στην κατάσταση μετατροπής που χρησιμοποιείται κατά την ερμηνεία της συμβολοσειράς πολλαπλών byte

wcrtomb () Τιμή επιστροφής

  • Κατά την επιτυχία, η συνάρτηση wcrtomb () επιστρέφει τον αριθμό των byte που είναι γραμμένοι στον πίνακα χαρακτήρων του οποίου το πρώτο στοιχείο επισημαίνεται από το s.
  • Σε αποτυχία (δηλ. Το wc δεν είναι έγκυρος χαρακτήρας μεγάλου εύρους), επιστρέφει -1, το errno έχει οριστεί σε EILSEQ και αφήνει * ps σε μη καθορισμένη κατάσταση.

Παράδειγμα: Πώς λειτουργεί η λειτουργία wcrtomb ();

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

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