Εκτύπωση Ελληνικών στη C
Σε αυτό το άρθρο θα δούμε πως κάνουμε εκτύπωση Ελληνικών στη C.
Αρχικά, για να εκτυπώσουμε μία φράση στα Αγγλικά στη γλώσσα προγραμματισμού C, χρησιμοποιούμε την εντολή printf και γράφουμε την πρόταση μας στα Αγγλικά.
Παράδειγμα
printf ("This is a text written in English.");
Αν προσπαθήσουμε να εκτυπώσουμε μία Ελληνική πρόταση με την εντολή printf, τότε αντί για εκτύπωση Ελληνικών, θα δούμε κάποια γράμματα και σύμβολα που δε βγάζουν κανένα νόημα.
Παράδειγμα
printf ("Αυτό είναι κείμενο γραμμένο στα Ελληνικά.");
Το αποτέλεσμα θα είναι το εξής:
Αυτό συμβαίνει γιατί οι μεταγλωττιστές της γλώσσας προγραμματισμού C δεν αναγνωρίζουν Ελληνικά.
Για να μπορέσουμε να κάνουμε εκτύπωση Ελληνικών στη C, πρέπει αρχικά να καλέσουμε τη βιβλιοθήκη (library) <locale.h> στην αρχή του κώδικα μας.
Παράδειγμα
#include <locale.h>
Στη γλώσσα C, η βιβλιοθήκη locale.h είναι ένα αρχείο γλώσσας που χρησιμοποιείται για σκοπούς εντοπισμού. Η κεφαλίδα παρέχει δύο βασικές λειτουργίες: localeconv και setlocale. Η πρώτη λειτουργία παρέχει πρόσβαση στο τρέχων locale, ενώ η δεύτερη λειτουργία επιτρέπει να ρυθμίσετε την τρέχουσα τοπική ρύθμιση. Η κεφαλίδα καθορίζει επίσης την lconv Struct, η οποία αποθηκεύει πληροφορίες σχετικά με μια δεδομένη τοπική ρύθμιση, συμπεριλαμβανομένου της τοπικής προτίμησης για την επίδειξη των αριθμών και του νομίσματος.
Στη συνέχεια χρησιμοποιούμε τη εντολή setlocale η οποία ορίζει ή διαβάζει τις πληροφορίες τοποθεσίας, μαζί με την παράμετρο LC_ALL.
Παράδειγμα
setlocale(LC_ALL, "");
Η εντολή setlocale μπορεί να πάρει τις εξής παραμέτρους:
- LC_COLLATE (για την σύγκριση συμβολοσειρών)
- LC_CTYPE (για την ταξινόμηση και μετατροπή χαρακτήρων)
- LC_MONETARY (για την νομισματική μορφοποίηση)
- LC_NUMERIC (για την υποδιαστολή)
- LC_TIME (για την μορφοποίηση ημερομηνίας και ώρας)
- LC_MESSAGES (για τις αποκρίσεις του συστήματος)
- LC_ALL (για όλα τα παραπάνω)
Τέλος χρησιμοποιούμε την εντολή printf βάζοντας την πρόταση που θέλουμε να εκτυπώσουμε στα Ελληνικά.
Παράδειγμα
printf ("Αυτό είναι κείμενο γραμμένο στα Ελληνικά.");
Παρακάτω θα δούμε ολοκληρωμένο το παράδειγμα με τον κώδικα της C για να εκτυπώσουμε Ελληνικά.
#include <stdio.h>
#include <locale.h>
int main(void)
{
setlocale(LC_ALL, "");
printf("Αυτό είναι κείμενο γραμμένο στα Ελληνικά.
"); return 0; }
Μετά την εκτέλεση του συγκεκριμένου κώδικα το αποτέλεσμα που θα πάρουμε θα είναι το εξής: