Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

4.3 Είσοδος χρήστη στην γλώσσα C

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

Για να λάβετε είσοδο από το χρήστη, μπορείτε να χρησιμοποιήσετε τη συνάρτηση scanf() στη C:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
int num; // Δήλωση μεταβλητής για τον αριθμό που θα εισαχθεί
printf("Please enter a number: "); // Εμφάνιση μηνύματος για την εισαγωγή αριθμού
scanf("%d", &num); // Ανάγνωση του αριθμού που εισάγει ο χρήστης και αποθήκευση στη μεταβλητή num
printf("The number you entered is %d", num); // Εμφάνιση του αριθμού που εισήχθη
return 0;
}
#include <stdio.h> int main() { int num; // Δήλωση μεταβλητής για τον αριθμό που θα εισαχθεί printf("Please enter a number: "); // Εμφάνιση μηνύματος για την εισαγωγή αριθμού scanf("%d", &num); // Ανάγνωση του αριθμού που εισάγει ο χρήστης και αποθήκευση στη μεταβλητή num printf("The number you entered is %d", num); // Εμφάνιση του αριθμού που εισήχθη return 0; }
#include <stdio.h>

int main() {
    int num;  // Δήλωση μεταβλητής για τον αριθμό που θα εισαχθεί
    
    printf("Please enter a number: ");  // Εμφάνιση μηνύματος για την εισαγωγή αριθμού
    scanf("%d", &num);  // Ανάγνωση του αριθμού που εισάγει ο χρήστης και αποθήκευση στη μεταβλητή num
    
    printf("The number you entered is %d", num);  // Εμφάνιση του αριθμού που εισήχθη
    
    return 0;
}

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

Σημειώστε ότι στο scanf(), χρησιμοποιούμε το %d για να δηλώσουμε ότι προσδιορίζουμε έναν ακέραιο αριθμό, ενώ η μεταβλητή num περνάει σαν παράμετρος στη συνάρτηση με τον τελεστή & (address-of operator) για να πάρει την τιμή που θα δοθεί από το χρήστη.

Η συνάρτηση scanf() επιτρέπει επίσης τη λήψη πολλαπλών εισόδων (ένας ακέραιος αριθμός και ένας χαρακτήρας στο παρακάτω παράδειγμα):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
int age; // Μεταβλητή για την ηλικία
char gender; // Μεταβλητή για το φύλο
printf("Please enter your age and gender (M/F): "); // Εμφάνιση μηνύματος για την εισαγωγή ηλικίας και φύλου
scanf("%d %c", &age, &gender); // Ανάγνωση της ηλικίας και του φύλου από τον χρήστη
printf("Your age is %d and your gender is %c", age, gender); // Εμφάνιση της ηλικίας και του φύλου που εισήγαγε ο χρήστης
return 0;
}
#include <stdio.h> int main() { int age; // Μεταβλητή για την ηλικία char gender; // Μεταβλητή για το φύλο printf("Please enter your age and gender (M/F): "); // Εμφάνιση μηνύματος για την εισαγωγή ηλικίας και φύλου scanf("%d %c", &age, &gender); // Ανάγνωση της ηλικίας και του φύλου από τον χρήστη printf("Your age is %d and your gender is %c", age, gender); // Εμφάνιση της ηλικίας και του φύλου που εισήγαγε ο χρήστης return 0; }
#include <stdio.h>

int main() {
    int age; // Μεταβλητή για την ηλικία
    char gender; // Μεταβλητή για το φύλο

    printf("Please enter your age and gender (M/F): "); // Εμφάνιση μηνύματος για την εισαγωγή ηλικίας και φύλου
    scanf("%d %c", &age, &gender); // Ανάγνωση της ηλικίας και του φύλου από τον χρήστη

    printf("Your age is %d and your gender is %c", age, gender); // Εμφάνιση της ηλικίας και του φύλου που εισήγαγε ο χρήστης

    return 0;
}

Σε αυτό το παράδειγμα, ο χρήστης καλείται να εισαγάγει την ηλικία του και το φύλο του χαρακτηρισμένο ως “M” ή “F”. Η συνάρτηση scanf() διαβάζει την είσοδο του χρήστη και αποθηκεύει την τιμή της ηλικίας στη μεταβλητή age και το φύλο στη μεταβλητή gender. Στη συνέχεια, η συνάρτηση printf() χρησιμοποιείται για να εμφανίσει την ηλικία και το φύλο του χρήστη.

Στη συνάρτηση scanf(), χρησιμοποιούμε το %d για να προσδιορίσουμε ότι αναμένουμε έναν ακέραιο αριθμό, ενώ το %c αναμένει έναν χαρακτήρα. Προσέξτε ότι η μεταβλητή gender δεν περνάει με τον τελεστή & (address-of operator) διότι είναι ένας χαρακτήρας και ήδη αντιστοιχεί σε έναν δείκτη.

Μπορείτε επίσης να λάβετε μια συμβολοσειρά που εισήγαγε ο χρήστης:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
char name[20]; // Δήλωση μιας μεταβλητής που θα αποθηκεύσει το όνομα
printf("Please enter your name: "); // Εκτύπωση μηνύματος για την εισαγωγή του ονόματος
scanf("%s", name); // Ανάγνωση του ονόματος από το χρήστη
printf("Your name is %s", name); // Εκτύπωση του ονόματος που δόθηκε
return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος
}
#include <stdio.h> int main() { char name[20]; // Δήλωση μιας μεταβλητής που θα αποθηκεύσει το όνομα printf("Please enter your name: "); // Εκτύπωση μηνύματος για την εισαγωγή του ονόματος scanf("%s", name); // Ανάγνωση του ονόματος από το χρήστη printf("Your name is %s", name); // Εκτύπωση του ονόματος που δόθηκε return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος }
#include <stdio.h>

int main() {
    char name[20]; // Δήλωση μιας μεταβλητής που θα αποθηκεύσει το όνομα

    printf("Please enter your name: "); // Εκτύπωση μηνύματος για την εισαγωγή του ονόματος
    scanf("%s", name); // Ανάγνωση του ονόματος από το χρήστη

    printf("Your name is %s", name); // Εκτύπωση του ονόματος που δόθηκε

    return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος
}

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

Προσέξτε ότι χρησιμοποιούμε το %s για να δηλώσουμε ότι αναμένουμε μια συμβολοσειρά ως είσοδο, ενώ η μεταβλητή name είναι ένας δείκτης στην αρχή της συμβολοσειράς. Επίσης, δεν χρειάζεται να χρησιμοποιήσουμε τον τελεστή & (address-of operator) όταν περνάμε τη μεταβλητή name στη συνάρτηση scanf(), καθώς αντιπροσωπεύει ήδη ένα δείκτη σε αυτήν τη συμβολοσειρά.

Ωστόσο, η συνάρτηση scanf() έχει ορισμένα περιορισμούς: θεωρεί το κενό (κενό διάστημα, tab κλπ.) ως χαρακτήρα τερματισμού, το οποίο σημαίνει ότι μπορεί να εμφανίσει μόνο μια λέξη (ακόμα κι αν πληκτρολογήσετε πολλές λέξεις).

Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
char name[20]; // Δήλωση μιας μεταβλητής name τύπου πίνακα χαρακτήρων με μέγεθος 20
printf("Please enter your full name: "); // Εκτύπωση μηνύματος προς τον χρήστη
scanf("%s", name); // Ανάγνωση της εισόδου του χρήστη και αποθήκευσή της στη μεταβλητή name
printf("Your name is %s", name); // Εκτύπωση του ονόματος που εισήγαγε ο χρήστης
return 0; // Επιστροφή της τιμής 0 για να υποδηλώσει επιτυχή ολοκλήρωση του προγράμματος
}
#include <stdio.h> int main() { char name[20]; // Δήλωση μιας μεταβλητής name τύπου πίνακα χαρακτήρων με μέγεθος 20 printf("Please enter your full name: "); // Εκτύπωση μηνύματος προς τον χρήστη scanf("%s", name); // Ανάγνωση της εισόδου του χρήστη και αποθήκευσή της στη μεταβλητή name printf("Your name is %s", name); // Εκτύπωση του ονόματος που εισήγαγε ο χρήστης return 0; // Επιστροφή της τιμής 0 για να υποδηλώσει επιτυχή ολοκλήρωση του προγράμματος }
#include <stdio.h>

int main() {
    char name[20]; // Δήλωση μιας μεταβλητής name τύπου πίνακα χαρακτήρων με μέγεθος 20

    printf("Please enter your full name: "); // Εκτύπωση μηνύματος προς τον χρήστη
    scanf("%s", name); // Ανάγνωση της εισόδου του χρήστη και αποθήκευσή της στη μεταβλητή name

    printf("Your name is %s", name); // Εκτύπωση του ονόματος που εισήγαγε ο χρήστης

    return 0; // Επιστροφή της τιμής 0 για να υποδηλώσει επιτυχή ολοκλήρωση του προγράμματος
}

Ο παραπάνω κώδικας σε C ζητά από τον χρήστη να εισάγει το πλήρες όνομά του και στη συνέχεια το εκτυπώνει στην οθόνη. Ο κώδικας ακολουθεί τα παρακάτω βήματα:

  1. Δηλώνει μια μεταβλητή name τύπου πίνακα χαρακτήρων με μέγεθος 20 για να αποθηκεύσει το όνομα που θα δοθεί από τον χρήστη.
  2. Χρησιμοποιεί τη συνάρτηση printf για να εκτυπώσει το μήνυμα “Please enter your full name: ” και ζητά από τον χρήστη να εισάγει το όνομά του.
  3. Χρησιμοποιεί τη συνάρτηση scanf για να διαβάσει την είσοδο του χρήστη και να αποθηκεύσει το όνομα στη μεταβλητή name.
  4. Χρησιμοποιεί ξανά τη συνάρτηση printf για να εκτυπώσει το μήνυμα “Your name is ” ακολουθούμενο από το όνομα που δόθηκε από τον χρήστη.
  5. Η εντολή return 0 υποδηλώνει ότι το πρόγραμμα ολοκληρώθηκε με επιτυχία και επιστρέφει την τιμή 0 στο σύστημα.

Για να διαβάσετε πολλές λέξεις από τον χρήστη, μπορείτε να χρησιμοποιήσετε τη συνάρτηση fgets(). Η συνάρτηση fgets() διαβάζει μια γραμμή από τον χρήστη και συνεχίζει μέχρι να ανιχνεύσει έναν χαρακτήρα νέας γραμμής (\n) ή έναν άλλο καθορισμένο χαρακτήρα τερματισμού. Με αυτόν τον τρόπο, μπορείτε να διαβάσετε ολόκληρη την είσοδο του χρήστη, συμπεριλαμβανομένων των χαρακτήρων κενού.

Για αυτό το λόγο, όταν δουλεύουμε με συμβολοσειρές, συνήθως χρησιμοποιούμε τη συνάρτηση fgets() για να διαβάσουμε μια γραμμή κειμένου. Πρέπει να σημειώσουμε ότι πρέπει να συμπεριλάβετε τα παρακάτω ορίσματα: το όνομα της μεταβλητής συμβολοσειράς, το sizeof(string_name) και το stdin:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
char name[20]; // Δήλωση μεταβλητής για το όνομα
printf("Please enter your full name: "); // Εμφάνιση μηνύματος προς τον χρήστη
fgets(name, sizeof(name), stdin); // Ανάγνωση του ονόματος από το χρήστη
printf("Your name is %s", name); // Εμφάνιση του ονόματος στην οθόνη
return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος
}
#include <stdio.h> int main() { char name[20]; // Δήλωση μεταβλητής για το όνομα printf("Please enter your full name: "); // Εμφάνιση μηνύματος προς τον χρήστη fgets(name, sizeof(name), stdin); // Ανάγνωση του ονόματος από το χρήστη printf("Your name is %s", name); // Εμφάνιση του ονόματος στην οθόνη return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος }
#include <stdio.h>

int main() {
    char name[20]; // Δήλωση μεταβλητής για το όνομα

    printf("Please enter your full name: "); // Εμφάνιση μηνύματος προς τον χρήστη
    fgets(name, sizeof(name), stdin); // Ανάγνωση του ονόματος από το χρήστη

    printf("Your name is %s", name); // Εμφάνιση του ονόματος στην οθόνη

    return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος
}

Ο παραπάνω κώδικας σε C περιλαμβάνει τα εξής σημεία:

  • Η γραμμή #include <stdio.h> εισάγει την απαραίτητη βιβλιοθήκη για την είσοδο/έξοδο στο πρόγραμμα.
  • Η συνάρτηση main() είναι η κύρια συνάρτηση του προγράμματος.
  • Η γραμμή char name[20]; δηλώνει μια μεταβλητή τύπου πίνακα χαρακτήρων με χωρητικότητα 20 θέσεων για την αποθήκευση του ονόματος.
  • Η γραμμή printf("Please enter your full name: "); εμφανίζει ένα μήνυμα προς τον χρήστη.
  • Η γραμμή fgets(name, sizeof(name), stdin); διαβάζει το όνομα που εισάγει ο χρήστης από το πληκτρολόγιο και το αποθηκεύει στη μεταβλητή name.
  • Η γραμμή printf("Your name is %s", name); εμφανίζει το ονοματεπώνυμο που εισήγαγε ο χρήστης.
  • Η γραμμή return 0; επιστρέφει την τιμή 0, υποδηλώνοντας την ομαλή ολοκλήρωση του προγράμματος.

Αν υποθέσουμε ότι ο χρήστης εισάγει το όνομα “John Smith”, το αποτέλεσμα στην οθόνη θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Please enter your full name: John Smith
Your name is John Smith
Please enter your full name: John Smith Your name is John Smith
Please enter your full name: John Smith
Your name is John Smith

Το πρόγραμμα ζητά από τον χρήστη να εισάγει το πλήρες όνομά του. Έπειτα, το όνομα που εισήγαγε ο χρήστης εμφανίζεται στην οθόνη.

20 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων