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

Η λειτουργία scanf () στο C ++ χρησιμοποιείται για την ανάγνωση των δεδομένων από το stdin.

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

 int scanf (const char * format,…);

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

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

παράμετροι σάρωσης ()

  • format: Δείκτης σε μια συμβολοσειρά χαρακτήρων μηδενικού τερματισμού που καθορίζει τον τρόπο ανάγνωσης της εισαγωγής. Αποτελείται από προσδιοριστές μορφής ξεκινώντας από%.

    Η συμβολοσειρά μορφής έχει τα ακόλουθα μέρη:

    • Non whitespace charactersεκτός από το% καθένα από τα οποία καταναλώνει έναν ίδιο χαρακτήρα από τη ροή εισόδου. Μπορεί να προκαλέσει αποτυχία της λειτουργίας, εάν ο επόμενος χαρακτήρας στη ροή δεν συγκρίνεται ίσος.
    • Whitespace character: Όλοι οι διαδοχικοί χαρακτήρες του λευκού χώρου αντιμετωπίζονται ως ένας χαρακτήρας με κενό διάστημα. Επιπλέον, τα « n», « t» και «» θεωρούνται ίδια.
    • Conversion specification: Ακολουθεί την ακόλουθη μορφή:
      • Αρχικός χαρακτήρας% που καθορίζει την αρχή
      • Ένας προαιρετικός * αποκαλούμενος χαρακτήρας καταστολής ανάθεσης. Εάν υπάρχει αυτός ο χαρακτήρας, το scanf () δεν αποδίδει το αποτέλεσμα σε κανένα όρισμα λήψης.
      • Ένας προαιρετικός θετικός ακέραιος αριθμός που καθορίζει το μέγιστο πλάτος πεδίου. Καθορίζει τον μέγιστο αριθμό χαρακτήρων που επιτρέπεται να καταναλώνει το scanf () κατά την εκτέλεση της μετατροπής που καθορίζεται από την τρέχουσα προδιαγραφή μετατροπής.
      • Ένας προαιρετικός τροποποιητής μήκους που καθορίζει το μέγεθος του ορίσματος λήψης.
      • Ένας προσδιοριστής μορφής μετατροπής.
        Προσδιοριστής μορφής Περιγραφή
        % Ταιριάζει με το κυριολεκτικό%
        ντο Ταιριάζει με έναν ή περισσότερους χαρακτήρες. Εάν ορίζεται το πλάτος, ταιριάζει με χαρακτήρες ακριβώς πλάτους.
        μικρό Ταιριάζει με διαδοχικούς χαρακτήρες χωρίς κενό διάστημα. Εάν ορίζεται το πλάτος, ταιριάζει με χαρακτήρες ακριβώς πλάτους ή μέχρι να βρεθεί ο πρώτος κενός χώρος.
        (σειρά) Αντιστοιχεί σε μια κενή ακολουθία χαρακτήρων από το δεδομένο σύνολο χαρακτήρων. Εάν το είναι παρόν στην αρχή του σετ, τότε όλοι οι χαρακτήρες που δεν βρίσκονται στο σετ ταιριάζουν.
        ρε Ταιριάζει με έναν δεκαδικό ακέραιο.
        Εγώ Ταιριάζει με έναν ακέραιο.
        ο Ταιριάζει με έναν μη υπογεγραμμένο οκταδικό ακέραιο.
        X ή x Αντιστοιχεί σε έναν μη υπογεγραμμένο δεκαεξαδικό ακέραιο.
        εσύ Αντιστοιχεί σε έναν μη υπογεγραμμένο δεκαδικό ακέραιο.
        A ή a, E ή e, F ή f, G ή g Ταιριάζει με έναν αριθμό κινητής υποδιαστολής.
        ν Επιστρέφει τον αριθμό των χαρακτήρων που έχουν διαβαστεί μέχρι στιγμής.
        Π Ταιριάζει με μια ακολουθία χαρακτήρων που καθορίζεται από την εφαρμογή και καθορίζει έναν δείκτη.
    Έτσι, η γενική μορφή του προσδιοριστή μορφής είναι: %(*)(width)(length)specifier
  • …: Άλλα πρόσθετα επιχειρήματα για τη λήψη δεδομένων. Εμφανίζονται σε μια ακολουθία σύμφωνα με τον προσδιοριστή μορφής.

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

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

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

 #include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )

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

 Γεια Τιμ, είσαι 31 ετών

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