Στη γλώσσα προγραμματισμού C, οι μεταβλητές πρέπει να δηλωθούν με έναν συγκεκριμένο τύπο δεδομένων. Οι τύποι δεδομένων καθορίζουν τον τρόπο αποθήκευσης και τη χρήση των δεδομένων στο πρόγραμμα.
Όταν θέλουμε να εμφανίσουμε μια μεταβλητή στην οθόνη με τη χρήση της συνάρτησης printf()
, πρέπει να χρησιμοποιήσουμε έναν “format specifier” για να περιγράψουμε τον τύπο της μεταβλητής. Ο “format specifier” καθορίζει τον τρόπο με τον οποίο θα εμφανιστεί η μεταβλητή στην οθόνη.
Για παράδειγμα, χρησιμοποιούμε το %d
για να εμφανίσουμε έναν ακέραιο αριθμό, το %f
για να εμφανίσουμε έναν δεκαδικό αριθμό και το %s
για να εμφανίσουμε μια αλφαριθμητική τιμή. Στην printf()
περνάμε τις μεταβλητές που θέλουμε να εμφανίσουμε, ακολουθούμενες από τους αντίστοιχους “format specifiers”.
Έτσι, χρησιμοποιώντας τους σωστούς “format specifiers”, μπορούμε να εμφανίσουμε τις μεταβλητές με τον σωστό τύπο δεδομένων στην οθόνη.
Παραδείγματα:
Αν θέλουμε να ορίσουμε μια μεταβλητή τύπου ακέραιου, μπορούμε να γράψουμε:
int myInteger = 10;
Αν θέλουμε να εμφανίσουμε τη μεταβλητή myInteger χρησιμοποιούμε τον format specifier %d μέσα στη συνάρτηση printf():
printf("Η τιμή της μεταβλητής myInteger είναι: %d", myInteger);
Αν θέλουμε να ορίσουμε μια μεταβλητή τύπου δεκαδικός, μπορούμε να γράψουμε:
float myFloat = 3.14;
Αν θέλουμε να εμφανίσουμε τη μεταβλητή myFloat με τρεις δεκαδικούς αριθμούς, χρησιμοποιούμε τον format specifier %0.3f μέσα στη συνάρτηση printf():
printf("Η τιμή της μεταβλητής myFloat είναι: %.3f", myFloat);
Αν θέλουμε να ορίσουμε μια μεταβλητή τύπου χαρακτήρας, μπορούμε να γράψουμε:
char myChar = 'A';
Αν θέλουμε να εμφανίσουμε τη μεταβλητή myChar, χρησιμοποιούμε τον format specifier %c μέσα στη συνάρτηση printf():
printf("Η τιμή της μεταβλητής myChar είναι: %c", myChar);
Βασικοί Τύποι Δεδομένων
Ο τύπος δεδομένων καθορίζει το μέγεθος και τον τύπο των πληροφοριών που θα αποθηκεύει η μεταβλητή.
[adinserter block=”2″]
Οι βασικοί τύποι δεδομένων είναι:
Τύπος Δεδομένων | Μέγεθος | Περιγραφή |
---|---|---|
int | 2 ή 4 bytes | Αποθηκεύει ακέραιους αριθμούς χωρίς δεκαδικά ψηφία |
float | 4 bytes | Αποθηκεύει κλασματικούς αριθμούς που περιλαμβάνουν ένα ή περισσότερα δεκαδικά ψηφία. Επαρκής για να αποθηκεύσει 6-7 δεκαδικά ψηφία |
double | 8 bytes | Αποθηκεύει κλασματικούς αριθμούς που περιλαμβάνουν ένα ή περισσότερα δεκαδικά ψηφία. Επαρκής για να αποθηκεύσει 15 δεκαδικά ψηφία |
char | 1 byte | Αποθηκεύει έναν μόνο χαρακτήρα/γράμμα/αριθμό ή τιμές ASCII |
Βασικοί Format Specifiers
Υπάρχουν διαφορετικοί format specifiers για κάθε τύπο δεδομένων. Εδώ είναι μερικοί από αυτούς:
Format Specifier | Τύπος Δεδομένων |
---|---|
%d ή %i | int |
%f | float |
%lf | double |
%c | char |
%s | Χρησιμοποιείται για συμβολοσειρές (κείμενο), για το οποίο θα μάθετε περισσότερα σε ένα αργότερο κεφάλαιο. |
Ρύθμιση Ακρίβειας Δεκαδικού Μέρους
Πιθανόν να έχετε ήδη παρατηρήσει ότι εάν εκτυπώσετε έναν κινητήρα αριθμό με δεκαδικά ψηφία, το αποτέλεσμα θα δείχνει πολλά ψηφία μετά το δεκαδικό σημείο:
Παράδειγμα:
float myFloat = 3.14159265; printf("My float is: %f", myFloat);
Το αποτέλεσμα θα είναι:
My float is: 3.141593
Παρατηρούμε ότι υπάρχουν πολλά ψηφία μετά το δεκαδικό σημείο. Για να ρυθμίσουμε τον αριθμό των ψηφίων δεκαδικού μέρους που εμφανίζονται, μπορούμε να χρησιμοποιήσουμε τον format specifier %f σε συνδυασμό με τη συμβολοσειρά “%0.nf”, όπου n είναι ο αριθμός των ψηφίων που θέλουμε να εμφανιστούν μετά το δεκαδικό σημείο:
Παράδειγμα:
float myFloat = 3.14159265; printf("My float is: %.2f", myFloat);
Το αποτέλεσμα θα είναι:
My float is: 3.14
Παρατηρούμε ότι εμφανίζονται μόνο δύο ψηφία μετά το δεκαδικό σημείο.
Εάν θέλετε να αφαιρέσετε τα περιττά μηδενικά (να ρυθμίσετε την ακρίβεια των δεκαδικών ψηφίων), μπορείτε να χρησιμοποιήσετε ένα τελεία (.) ακολουθούμενο από έναν αριθμό που καθορίζει πόσα ψηφία πρέπει να εμφανίζονται μετά το δεκαδικό σημείο:
Παράδειγμα:
float myFloat = 3.14000000; printf("My float is: %.2f", myFloat);
Το αποτέλεσμα θα είναι:
My float is: 3.14
Παρατηρούμε ότι δεν υπάρχουν περιττά μηδενικά μετά το δεκαδικό σημείο.