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

Η συνάρτηση swscanf () στο C ++ διαβάζει μεγάλο χαρακτήρα από buffer ευρείας συμβολοσειράς.

Η συνάρτηση swscanf () ορίζεται στο αρχείο κεφαλίδας.

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

 int swscanf (const wchar_t * buffer, const wchar_t * format,…);

Η συνάρτηση swscanf () διαβάζει τα δεδομένα από το buffer και αποθηκεύει τις τιμές στις αντίστοιχες μεταβλητές.

παράμετροι swscanf ()

  • buffer: Δείκτης στο buffer ευρείας συμβολοσειράς για να διαβάσετε τα δεδομένα από.
  • Μορφή: Δείκτης σε συμβολοσειρά χαρακτήρων με μηδενικό τερματισμό που καθορίζει τον τρόπο ανάγνωσης της εισαγωγής. Αποτελείται από προσδιοριστές μορφής ξεκινώντας από%.
    Η συμβολοσειρά μορφής έχει τα ακόλουθα μέρη:
    • Χαρακτήρες χωρίς κενό διάστημα, εκτός από το% καθένα από τα οποία καταναλώνει έναν ίδιο χαρακτήρα από τη ροή εισόδου. Μπορεί να προκαλέσει αποτυχία της λειτουργίας, εάν ο επόμενος χαρακτήρας στη ροή δεν συγκρίνεται ίσος.
    • Χαρακτήρας κενού χώρου: Όλοι οι διαδοχικοί χαρακτήρες κενού χώρου αντιμετωπίζονται ως μεμονωμένος χαρακτήρας κενού διαστήματος. Επιπλέον, τα « n», « t» και «» θεωρούνται ίδια.
    • Προδιαγραφή μετατροπής: Ακολουθεί την ακόλουθη μορφή:
      • Αρχικός χαρακτήρας% που καθορίζει την αρχή
      • Ένας προαιρετικός * αποκαλούμενος χαρακτήρας καταστολής ανάθεσης. Εάν αυτός ο χαρακτήρας υπάρχει, το swscanf () δεν αποδίδει το αποτέλεσμα σε οποιοδήποτε επιχείρημα λήψης.
      • Ένας προαιρετικός θετικός ακέραιος αριθμός που καθορίζει το μέγιστο πλάτος πεδίου. Καθορίζει τον μέγιστο αριθμό χαρακτήρων που επιτρέπεται να καταναλώνει το swscanf () κατά την εκτέλεση της μετατροπής που καθορίζεται από την τρέχουσα προδιαγραφή μετατροπής.
      • Ένας προαιρετικός τροποποιητής μήκους που καθορίζει το μέγεθος του ορίσματος λήψης.
      • Ένας προσδιοριστής μορφής μετατροπής.
    Διαμορφωτές μορφοποίησης
    Προσδιοριστής μορφής Περιγραφή
    % Ταιριάζει με το κυριολεκτικό%
    ντο Ταιριάζει με έναν ή περισσότερους χαρακτήρες. Εάν ορίζεται το πλάτος, ταιριάζει με χαρακτήρες ακριβώς πλάτους.
    μικρό Ταιριάζει με διαδοχικούς χαρακτήρες χωρίς κενό διάστημα. Εάν ορίζεται το πλάτος, ταιριάζει με χαρακτήρες ακριβώς πλάτους ή μέχρι να βρεθεί ο πρώτος κενός χώρος.
    (σειρά) Αντιστοιχεί σε μια κενή ακολουθία χαρακτήρων από το δεδομένο σύνολο χαρακτήρων. Εάν το είναι παρόν στην αρχή του σετ, τότε όλοι οι χαρακτήρες που δεν βρίσκονται στο σετ ταιριάζουν.
    ρε Ταιριάζει με έναν δεκαδικό ακέραιο.
    Εγώ Ταιριάζει με έναν ακέραιο.
    ο Ταιριάζει με έναν μη υπογεγραμμένο οκταδικό ακέραιο.
    X ή x Αντιστοιχεί σε έναν μη υπογεγραμμένο δεκαεξαδικό ακέραιο.
    εσύ Αντιστοιχεί σε έναν μη υπογεγραμμένο δεκαδικό ακέραιο.
    A ή a, E ή e, F ή f, G ή g Ταιριάζει με έναν αριθμό κινητής υποδιαστολής.
    ν Επιστρέφει τον αριθμό των χαρακτήρων που έχουν διαβαστεί μέχρι στιγμής.
    Π Ταιριάζει με μια ακολουθία χαρακτήρων που καθορίζεται από την εφαρμογή και καθορίζει έναν δείκτη.

    Έτσι, η γενική μορφή του προσδιοριστή μορφής είναι:
     % (*) (πλάτος) (μήκος) προσδιοριστής
  • …: Άλλα πρόσθετα επιχειρήματα για τη λήψη δεδομένων. Εμφανίζονται σε μια ακολουθία σύμφωνα με τον προσδιοριστή μορφής.

swscanf () Επιστροφή τιμή

  • Η συνάρτηση swscanf () επιστρέφει τον αριθμό των ορισμάτων παραλαβής που έχουν εκχωρηθεί με επιτυχία.
  • Εάν παρουσιαστεί αποτυχία πριν εκχωρηθεί το πρώτο όρισμα λήψης, επιστρέφεται το EOF

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

 #include #include int main() ( wchar_t buffer(100) = L"Theta u03b8"; wchar_t symbol, desc(10); setlocale(LC_ALL, "en_US.UTF-8"); swscanf(buffer, L"%ls %lc", desc, &symbol); wprintf(L"%lc is %ls", symbol, desc); return 0; )

Όταν εκτελείτε το πρόγραμμα, μια πιθανή έξοδος θα είναι:

 θ είναι η Θήτα

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