k33theod Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Εδώ και λίγες βδομάδες άρχισα να μαθαίνω λίγο c Δεν έχω κάποιον ide εγκατεστημένο έχω mingw κ προσπαθώ λοιπών να πάρω ελληνικά στην consola (command prompt) των windows αλλά τίποτα H consola μου υποστηρίζει ελληνικά έχει active code page 1253 ο μόνος τρόπος που είδα ελληνικά από τη c μετά από αρκετό ψάξιμο είναι με printf("\xE3\xE5\xE9\xDC \xF3\xEF\xF5\n"); έχω δοκιμάσει κάποια πράγματα με το locale και το wchar αλλά τίποτα ίσως να τα έκανα και λάθος Ξέρει κανένας κάποιον τρόπο.
kaliakman Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Εδώ και λίγες βδομάδες άρχισα να μαθαίνω λίγο c Δεν έχω κάποιον ide εγκατεστημένο έχω mingw κ προσπαθώ λοιπών να πάρω ελληνικά στην consola (command prompt) των windows αλλά τίποτα H consola μου υποστηρίζει ελληνικά έχει active code page 1253 ο μόνος τρόπος που είδα ελληνικά από τη c μετά από αρκετό ψάξιμο είναι με printf("\xE3\xE5\xE9\xDC \xF3\xEF\xF5\n"); έχω δοκιμάσει κάποια πράγματα με το locale και το wchar αλλά τίποτα ίσως να τα έκανα και λάθος Ξέρει κανένας κάποιον τρόπο. Λίγο που το είχα ψάξει και εγώ δεν είχα βρει κάτι.
_Gikoskos_ Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Σε Windows ο μονος τροπος να παρεις ελληνικα στην κονσολα ειναι αν αλλαξεις το φοντο της κονσολας (υπαρχει μια διαδικασια αν το κανεις google) ή αν χρησιμοποιησεις εναλακτικο console emulator σαν το Cmder το οποιο βασιζεται στο ConEmu. Ειλικρινα αν προγραμματιζεις σε Windows και χρησιμοποιεις πολυ την κονσολα, τοτε το cmd.exe δεν θα σου ειναι και πολυ χρησιμο. Το Cmder προσφερει υποστηριξη Unicode για καθε ειδους εφαρμογη. Οταν το κατεβασεις, γραψε ενα δοκιμαστικο προγραμμα #include <stdio.h> int main(void) { printf("Γεια σου κόσμε\n"); return 0; } Εννοειται πως δεν χρειαζεται να γραφεις καθε χαρακτηρα σε δεκαξαδικη μορφη. Ολες οι συμβολοσειρες ειναι σειρες απο bytes, ανεξαρτητα σε ποιο encoding scheme ανηκουν. Μπορει να κανει και καποια μετατροπη ο compiler αλλα εσυ δεν χρειαζεται να κανεις τιποτα εξτρα, απο το παραπανω. Απλα μην ξεχασεις να το αποθηκευσεις σε UTF-8 encoding. Ανοιξε τον Cmder, καντο compile, τρεξε chcp 65001 (για να αλλαξεις το codepage σε UTF-8) και τρεξε το προγραμμα σου. Απο εκει και περα η κονσολα θα εφαρμοσει τα απαραιτητα encodings, για εσενα, σε οτι κειμενα της λες να εκτυπωσει.
tsofras Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Βάλε linux.Αστεία απάντηση ειδικά για τα ελληνικά λες και δουλεύουν καλύτερα. Τεσπα, κοίτα το cmd μπορεί να είναι σε ελληνικό encoding, το ide όμως τι encoding έχει? Για ψάξε σε options του ide να δεις. Επίσης στο cmd αν γράψεις ελληνικά γράφει κανονικά?
NickSym Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Γιατί να χρησιμοποιήσει κάποιος ελληνικά στη C; Anyway, αν και δεν με απασχόλησε ποτέ, πέραν των προηγούμενων προτάσεων, μπορείς να κάνεις mapping αγγλικούς χαρακτήρες με το κατάλληλο encoding...
_Gikoskos_ Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Τα γνωστα Linux terminal emulators υποστηριζουν απο προεπιλογη UTF-8 encoding σε ο,τι ειδους κειμενο δεχονται, και επισης εχουν και καταλληλο φοντο. Δηλαδη χωρις να πειραξεις τιποτα, το παραπανω προγραμμα θα εμφανιζεται κανονικα στα περισσοτερα τερματικα. Η διαφορα με το cmd.exe ειναι πως το cmd.exe απο προεπιλογη υποστηριζει ενα αλλο encoding, και το φοντο που εχει προεγκατεστημενο δεν υποστηριζει χαρακτηρες Unicode.
Dinos_12345 Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Αν θες και έχεις windows 10, υπάρχει full bash, που μπορείς να το ενεργοποιήσεις (google it)
imitheos Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 Εδώ και λίγες βδομάδες άρχισα να μαθαίνω λίγο c Δεν έχω κάποιον ide εγκατεστημένο έχω mingw κ προσπαθώ λοιπών να πάρω ελληνικά στην consola (command prompt) των windows αλλά τίποτα H consola μου υποστηρίζει ελληνικά έχει active code page 1253 ο μόνος τρόπος που είδα ελληνικά από τη c μετά από αρκετό ψάξιμο είναι με printf("\xE3\xE5\xE9\xDC \xF3\xEF\xF5\n"); έχω δοκιμάσει κάποια πράγματα με το locale και το wchar αλλά τίποτα ίσως να τα έκανα και λάθος Ξέρει κανένας κάποιον τρόπο. Ψάξε ένα παλαιότερο μήνυμα του migf1. Λογικά θα πρέπει να παίξεις με exec-charset και λοιπές παραμέτρους. Όταν εσύ γράφεις κάτι στα Ελληνικά σε κάποιον κειμενογράφο, αυτό που γράφεις ουσιαστικά είναι χαρακτήρες στην κωδικοσελίδα που χρησιμοποιείς. Ας πούμε ότι χρησιμοποιείς το πρότυπο UTF-16. Μετά πας να εμφανίσεις αυτό στο command prompt το οποίο όπως λες χρησιμοποιεί την single-byte κωδικοσελίδα 1253 και έτσι εμφανίζονται μ.ακίες. % cat > tmp.c << EOF #include <stdio.h> int main(void) { puts("Hello Γεια"); return 0; } EOF Έστω ότι γράφω το παραπάνω πρόγραμμα. Το locale μου στο linux είναι UTF-8 οπότε το Γεια αντιστοιχεί σε κάποιους συγκεκριμένους χαρακτήρες (8 στο σύνολο). % cc -Wall -o tmp1 tmp.c % iconv -f utf-8 -t windows-1253 -o tmp2.c tmp.c % cc -Wall -o tmp-wrong tmp2.c % cc -Wall -finput-charset=windows-1253 -Wall -o tmp-right tmp2.c Κάνω compile το εκτελέσιμο tmp1 και μετά χρησιμοποιώ το iconv ώστε να αλλάξω τον κώδικά μου από UTF-8 σε Windows-1253 (μόνο τα ελληνικά θα αλλάξουν φυσικά). Έπειτα κάνω compile το tmp-wrong και το tmp-right. % ./tmp1; ./tmp-wrong; ./tmp-right Hello Γεια Hello Ãåéá Hello Γεια Τρέχοντας το tmp-wrong παίρνω σκουπίδια γιατί τα bytes που έχει το αρχείο μου και είναι ελληνικοί χαρακτήρες αν ερμηνευτούν ως Windows-1253 είναι σκουπίδια αν ερμηνευτούν ως UTF-8. Όταν λέω στον gcc ότι το αρχείο μου έχει γραφτεί σε windows-1253 τότε πραγματοποιεί εσωτερικά το αντίθετο της iconv που έτρεξα, το μετατρέπει στην κωδικοσελίδα που ξέρει ότι χρειάζομαι (ή όποια του πω εγώ με την exec-charset) και έτσι το tmp-right παίζει σωστά. Ή πρέπει δηλαδή να πεις στον κειμενογράφο σου να σώζει το αρχείο ως windows-1253 που θέλει η κονσόλα σου ή πρέπει να πεις στον compiler σου ότι το αρχείο έχει γραφτεί στην τάδε κωδικοσελίδα ώστε να το μετατρέψει σε αυτήν που θέλει η κονσόλα σου. 2
pmav99 Δημοσ. 25 Ιανουαρίου 2017 Δημοσ. 25 Ιανουαρίου 2017 http://www.insomnia.gr/topic/573221-ελληνικά-στη-κονσόλα-των-windows-με-στάνταρ-c/#entry54081822 IMHO, αν απλά μαθαίνεις, μην ασχολείσαι με τα ελληνικά στην κονσόλα. Θα χάσεις τζάμπα χρόνο. Γράφε στα αγγλικά να κάνεις και εξάσκηση 1
k33theod Δημοσ. 25 Ιανουαρίου 2017 Μέλος Δημοσ. 25 Ιανουαρίου 2017 Ευχαριστώ όλους για τις απαντήσεις Τελικά είχατε δίκιο οι περισσότεροι Στον notepad++ έγραφα σε utf-8 με αποτέλεσμα να μην μπορούν να εμφανιστούν στην consola Αλαξα το character set του notepad++ σε windows 1253 και magic Μια βδομάδα πεδεύομαι και δεν το είχα καταλάβει. 2
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα