Περιμένετε για εισαγωγή χρήστη: Γλώσσα C

Wait User Input C Language



Στη γλώσσα προγραμματισμού C υπάρχουν ορισμένες συναρτήσεις εισόδου. Χρησιμοποιώντας αυτές τις λειτουργίες, μπορούμε να περιμένουμε την εισαγωγή του χρήστη. Σε αυτό το σεμινάριο θα συζητήσουμε λεπτομερώς τις συναρτήσεις εισόδου.

Μορφοποίηση συμβολοσειράς

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







arg1, arg2, arg3… είναι οι διευθύνσεις των μεταβλητών όπου θα αποθηκευτούν τα εισαγόμενα δεδομένα.



scanf () Λειτουργία

Σύνταξη: int scanf (μορφή συμβολοσειράς, arg1, arg2, arg3…)



Μερικοί από τους προσδιοριστές που χρησιμοποιούνται συχνά είναι οι εξής:





  • ρε - Χρησιμοποιείται για ακέραιες τιμές.
  • φά - Χρησιμοποιείται για κυμαινόμενο αριθμό.
  • ντο - Χρησιμοποιείται για τιμή ενός χαρακτήρα.
  • μικρό - Χρησιμοποιείται για χορδές.

Χρήση single scanf () λειτουργία, μία ή πολλαπλές εισαγωγές μπορούν να ληφθούν από το χρήστη.

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



Παράδειγμα 1: Ακέραιη είσοδος

// Παράδειγμα1.γ
#περιλαμβάνω

intκύριος(){

intΕγώ?
printf ('Εισαγάγετε την 1η ακέραιη τιμή:')?
scanf ('%ρε', &Εγώ)?
printf ('Μπήκατε: %d n',Εγώ)?

printf ('Εισαγάγετε 2η ακέραιη τιμή:')?
scanf ('%ρε', &Εγώ)?
printf ('Μπήκατε: %d n',Εγώ)?

ΕΠΙΣΤΡΟΦΗ 0?
}

Στο Παράδειγμα1.γ, είδαμε ότι όταν εισαγάγαμε ακέραιες τιμές και πατήσαμε το πλήκτρο εισαγωγής. ο scanf () συνάρτηση παίρνει την τιμή και την αποθηκεύει στη μεταβλητή. Εάν εισαγάγουμε τις τιμές διαχωρισμένες με διάστημα, η συνάρτηση επιστρέφει όταν συναντηθεί χώρος, αλλά οι τιμές μετά το διάστημα παραμένουν στο buffer εισόδου. Γι 'αυτό το δεύτερο scanf () συνάρτηση δεν θα περιμένει για την είσοδο του χρήστη, αλλά παίρνει την είσοδο από το buffer.

Παράδειγμα 2: Εισαγωγή μεμονωμένου χαρακτήρα

// Παράδειγμα2.γ
#περιλαμβάνω

intκύριος(){

απανθρακώνωντο?
printf ('Εισαγάγετε έναν χαρακτήρα:')?
scanf ('% c', &ντο)?
printf ('Μπήκατε: %c n',ντο)?

ΕΠΙΣΤΡΟΦΗ 0?
}

Στο Παράδειγμα2.γ, το έχουμε δει όταν το χρησιμοποιούμε % c προσδιοριστής, το scanf () Η συνάρτηση λαμβάνει μόνο έναν χαρακτήρα ακόμη και αν έχουμε εισαγάγει περισσότερους από έναν χαρακτήρες.

Παράδειγμα 3: Ενιαία εισαγωγή χαρακτήρων (πολλαπλές φορές)

// Παράδειγμα3.γ
#περιλαμβάνω

intκύριος(){

απανθρακώνωντο?
printf ('Εισαγάγετε τον 1ο χαρακτήρα:')?
scanf ('% c', &ντο)?
printf ('Μπήκατε: %c n',ντο)?

printf ('Εισαγάγετε τον 2ο χαρακτήρα:')?
scanf ('% c', &ντο)?
printf ('Μπήκατε: %c n',ντο)?

ΕΠΙΣΤΡΟΦΗ 0?
}

Παράδειγμα 4 :

// Παράδειγμα4.γ
#περιλαμβάνω

intκύριος(){

απανθρακώνωντο?
printf ('Εισαγάγετε τον 1ο χαρακτήρα:')?
scanf ('% c', &ντο)?
printf ('Μπήκατε: %c n',ντο)?

printf ('Εισαγάγετε τον 2ο χαρακτήρα:')?
scanf ('% c', &ντο)?
printf ('Μπήκατε: %c n',ντο)?

ΕΠΙΣΤΡΟΦΗ 0?
}

Παράδειγμα 5: Εισαγωγή συμβολοσειράς

// Παράδειγμα5.γ
#περιλαμβάνω

intκύριος(){

απανθρακώνωόνομα[δεκαπέντε]?
printf ('Εισάγετε το όνομά σας: ')?
scanf ('%μικρό',όνομα)?
printf ('Μπήκατε: %s n',όνομα)?

ΕΠΙΣΤΡΟΦΗ 0?
}

getc () Λειτουργία

Σύνταξη: int getc (ροή FILE *)

getc () η συνάρτηση χρησιμοποιείται για την ανάγνωση ενός χαρακτήρα από τον δείκτη FILE (ροή). Για να διαβάσετε από το πληκτρολόγιο, πρέπει να το χρησιμοποιήσετε stdin Το Αυτή η συνάρτηση επιστρέφει μια ακέραιη τιμή χαρακτήρα ανάγνωσης.

Παράδειγμα 6:

// Παράδειγμα6.γ
#περιλαμβάνω

intκύριος(){

απανθρακώνωντο?
printf ('Εισαγάγετε τον 1ο χαρακτήρα:')?
ενώ((ντο= getc (stdin))==' n')?
printf ('Μπήκατε: %c n',ντο)?

ενώ( getc (stdin)! = =' n')?

printf ('Εισαγάγετε τον 2ο χαρακτήρα:')?
ενώ((ντο= getc (stdin))==' n')?
printf ('Μπήκατε: %c n',ντο)?

ΕΠΙΣΤΡΟΦΗ 0?
}

συνάρτηση getchar ()

Σύνταξη: int getchar (άκυρο)

getchar () η λειτουργία είναι ίδια με getc () Το Η μόνη διαφορά είναι ότι getc () η λειτουργία μπορεί να διαβάσει από οποιαδήποτε ροή εισόδου, ενώ getchar () η λειτουργία διαβάζεται μόνο από την τυπική είσοδο.

Παράδειγμα 7:

// Παράδειγμα7.γ
#περιλαμβάνω

intκύριος(){

απανθρακώνωντο?
printf ('Εισαγάγετε τον 1ο χαρακτήρα:')?
ενώ((ντο= getchar ())==' n')?
printf ('Μπήκατε: %c n',ντο)?

ενώ( getchar ()! = =' n')?

printf ('Εισαγάγετε τον 2ο χαρακτήρα:')?
ενώ((ντο= getchar ())==' n')?
printf ('Μπήκατε: %c n',ντο)?

ΕΠΙΣΤΡΟΦΗ 0?
}

συμπέρασμα

Σε αυτό το άρθρο, είδαμε πώς χρησιμοποιούνται οι συναρτήσεις εισόδου στη γλώσσα C. Όλες αυτές οι συναρτήσεις λαμβάνονται από το buffer εισόδου και όταν χρησιμοποιούμε αυτές τις συναρτήσεις πολλές φορές, πρέπει να καθαρίσουμε το buffer. Διαφορετικά, οι λειτουργίες δεν θα περιμένουν την είσοδο του χρήστη και θα λάβουν την είσοδο από το buffer.