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

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

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

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

 int fwscanf (ροή FILE *, μορφή const wchar_t *,…);

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

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

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

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

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

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

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

 #include #include #include #include int main() ( FILE *fp = fopen("example.txt","w+"); wchar_t str(10), ch; setlocale(LC_ALL, "en_US.UTF-8"); fwprintf(fp, L"%ls %lc", L"Summation", L'u2211'); fwprintf(fp, L"%ls %lc", L"Integral", L'u222b'); rewind(fp); while((fwscanf(fp, L"%ls %lc", str, &ch))!=EOF) ( wprintf(L"%lc is %ls", ch, str); ) fclose(fp); return 0; )

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

 ∑ είναι Summation ∫ είναι Integral

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