Η συνάρτηση swprintf () στο C ++ χρησιμοποιείται για την εγγραφή μιας διαμορφωμένης ευρείας συμβολοσειράς σε μια ευρεία μνήμη συμβολοσειράς.
Η συνάρτηση swprintf () ορίζεται στο αρχείο κεφαλίδας.
πρωτότυπο swprintf ()
int swprintf (wchar_t * buffer, size_t size, const wchar_t * format,…);
Η συνάρτηση swprintf () γράφει την ευρεία συμβολοσειρά που επισημαίνεται ανά μορφή στο buffer. Ο μέγιστος αριθμός χαρακτήρων που μπορούν να γραφτούν είναι (μέγεθος-1).
Μετά τη σύνταξη των χαρακτήρων, προστίθεται ένας τελικός χαρακτήρας μηδενικού πλάτους.
Η μορφή ευρείας συμβολοσειράς μπορεί να περιέχει προσδιοριστές μορφής ξεκινώντας από% που αντικαθίστανται από τις τιμές των μεταβλητών που μεταβιβάζονται στη συνάρτηση swprintf () ως πρόσθετα ορίσματα.
παράμετροι swprintf ()
- buffer: Δείκτης στο buffer συμβολοσειράς για να γράψετε το αποτέλεσμα.
- size: Καθορίστε τον μέγιστο αριθμό χαρακτήρων που θα γραφτούν στο buffer που είναι μέγεθος-1.
- Μορφή: Ένας δείκτης σε μια ευθεία συμβολοσειρά μηδενικής λήξης που γράφεται στο stdout. Αποτελείται από μεγάλους χαρακτήρες μαζί με προαιρετικούς προσδιοριστές μορφής ξεκινώντας από%. Οι προσδιοριστές μορφής αντικαθίστανται από τις τιμές των αντίστοιχων μεταβλητών που ακολουθούν τη μορφή.
Ο προσδιοριστής μορφής έχει τα ακόλουθα μέρη:- Ένα κορυφαίο σύμβολο%
- Σημαίες: Προαιρετική μία ή περισσότερες σημαίες που τροποποιούν τη συμπεριφορά μετατροπής.
- -: Αριστερά αιτιολογήστε το αποτέλεσμα στο πεδίο. Από προεπιλογή, δικαιολογείται σωστά.
- +: Το σύμβολο του αποτελέσματος επισυνάπτεται στην αρχή της τιμής, ακόμη και για θετικά αποτελέσματα.
- Space: Εάν δεν υπάρχει σημάδι, ένα κενό είναι προσαρτημένο στην αρχή του αποτελέσματος.
- #: Εκτελείται μια εναλλακτική μορφή μετατροπής.
- 0: Χρησιμοποιείται για ακέραιο και κυμαινόμενο αριθμό. Τα κορυφαία μηδενικά χρησιμοποιούνται για να γεμίσουν τους αριθμούς αντί για κενό.
- Πλάτος: Μια προαιρετική * ή ακέραια τιμή που χρησιμοποιείται για τον καθορισμό του πεδίου ελάχιστου πλάτους.
- Ακρίβεια: Ένα προαιρετικό πεδίο που αποτελείται από ακολουθούμενο από * ή ακέραιο ή τίποτα για να καθορίσετε την ακρίβεια.
- Μήκος: Ένας προαιρετικός τροποποιητής μήκους που καθορίζει το μέγεθος του ορίσματος.
- Καθορισμός: Ένας προσδιοριστής μορφής μετατροπής. Οι διαθέσιμοι προσδιοριστές μορφής είναι οι εξής:
Προσδιοριστής μορφής Περιγραφή % Εκτυπώσεις% ντο Γράφει έναν μόνο χαρακτήρα μικρό Γράφει μια συμβολοσειρά χαρακτήρων δ ή ι Μετατρέπει έναν υπογεγραμμένο ακέραιο σε δεκαδική αναπαράσταση ο Μετατρέπει έναν μη υπογεγραμμένο ακέραιο σε οκταδική αναπαράσταση X ή x Μετατρέπει έναν μη υπογεγραμμένο ακέραιο σε δεκαεξαδική αναπαράσταση εσύ Μετατρέπει έναν μη υπογεγραμμένο ακέραιο σε δεκαδική αναπαράσταση F ή f Μετατρέπει τον αριθμό κυμαινόμενου σημείου στην δεκαδική αναπαράσταση Ε ή ε Μετατρέπει τον αριθμό κυμαινόμενου σημείου στην υποδιαστολή του δεκαδικού εκθετικού Α ή α Μετατρέπει τον αριθμό κυμαινόμενου σημείου στον δεκαεξαδικό εκθέτη G ή g Μετατρέπει τον αριθμό κυμαινόμενου σημείου σε δεκαδικό ή δεκαδικό εκθετικό συμβολισμό ν Επιστρέφει τον αριθμό των χαρακτήρων που έχουν γραφτεί μέχρι στιγμής από αυτήν την κλήση στη συνάρτηση. Το αποτέλεσμα γράφεται στην τιμή που δείχνει το όρισμα Π Γράφει μια ακολουθία χαρακτήρων που καθορίζεται από την εφαρμογή και καθορίζει έναν δείκτη.
Έτσι, η γενική μορφή του προσδιοριστή μορφής είναι:% (σημαίες) (πλάτος) (. ακρίβεια) (μήκος) προσδιοριστής
- …: Άλλα επιπρόσθετα επιχειρήματα που καθορίζουν τα προς συγγραφή δεδομένα Εμφανίζονται σε μια ακολουθία σύμφωνα με τον προσδιοριστή μορφής.
swprintf () Επιστροφή τιμή
- Κατά την επιτυχία, η συνάρτηση swprintf () επιστρέφει τον αριθμό των χαρακτήρων που έχουν γραφτεί, εξαιρουμένου του τελικού μηδενικού χαρακτήρα.
- Εάν προέκυψε σφάλμα κωδικοποίησης ή εάν ο αριθμός των χαρακτήρων που θα δημιουργηθούν ήταν ίσος ή μεγαλύτερος από το μέγεθος, επιστρέφεται μια αρνητική τιμή.
Παράδειγμα: Πώς λειτουργεί η λειτουργία swprintf ();
#include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )
Όταν εκτελείτε το πρόγραμμα, τα ακόλουθα θα γραφτούν στο example.txt:
Μερικά εβραϊκά γράμματα א ב ס ד ת