Προς το περιεχόμενο

Βοήθεια σε Dev C++ & Ελληνικούς Χαρακτήρες


B@GOS.GR

Προτεινόμενες αναρτήσεις

Καταρχάς Καλησπέρα..!

 

Έχω το εν λόγο πρόβλημα:

 

Χρησημοποιώ τον Compiler Dev C++ Version 4.9.9.2 και ώστόσο Η διαχείριση - τύπωση - και εισαγωγή ελληνικών Χαρακτήρων είναι αδήνατη :fear: ( με την ένοια ότι δέν εμφανίζονται ούτε όταν Γραφω στον Text Editor της DEV .. αλλα ούτε και όταν το Γραφω σε Command mode )

 

έχω Windows XP profecional την αγγλική έκδοση..!

 

Υ.Γ.

 

έκανα ενα Μικρο Search αλλά το θέμα που βρίκα δεν βοήθησε και τόσο..!:-(

 

Edit:

άκόμα και αν γνωρίζετέ κάπιον άλλον Compiler θα βοηθούσε πολύ..!

 

Ευχαριστώ..!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν είναι πρόβλημα του Dev-C++, με οποιοδήποτε άλλο IDE γράφοντας ελληνικά σε πρόγραμμα κονσόλας θα είχες τα ίδια.

 

Σχετικά με το link που δίνεις στο άλλο thread : Έκανες αυτό που λέει ο φίλος στο post #5 (δεξί κλικ στο exe --> Create Shortcut --> δεξί κλικ στο shortcut που δημιουργήθηκε --> Properties --> καρτέλα Font --> επιλέγεις ως Font το Lucida Console) ;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το ίδιο πρόβλημα είχα κι εγώ όταν ασχολήθηκα με τον DEV-C++. Ρώτησα τον καθηγητή μου και μου είπε οτι ο μόνος τρόπος για να διαβάζονται σωστά τα Ελληνικά στην κονσόλα του DOS είναι να χρησιμοποιήσεις για συγγραφή του κώδικα τον text editor που προσφέρει το DOS, ("Edit", νομίζω ονομάζεται). Δηλαδή, ξέχνα τα ελληνικά στο DEV C++ (και σε οποιοδήπτε άλλο compiler, υποθέτω). Αυτό που κάνω εγώ είναι να γράφω greeklish, πχ

printf("dose arithmo\n");

Πάντως τα σχόλια του κώδικα γράφονται κανονικά στα Ελληνικά (αλλωστε, τα σχολια δεν μεταγλωτίζονται).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το ίδιο πρόβλημα είχα κι εγώ όταν ασχολήθηκα με τον DEV-C++. Ρώτησα τον καθηγητή μου και μου είπε οτι ο μόνος τρόπος για να διαβάζονται σωστά τα Ελληνικά στην κονσόλα του DOS είναι να χρησιμοποιήσεις για συγγραφή του κώδικα τον text editor που προσφέρει το DOS, ("Edit", νομίζω ονομάζεται). Δηλαδή, ξέχνα τα ελληνικά στο DEV C++ (και σε οποιοδήπτε άλλο compiler, υποθέτω). Αυτό που κάνω εγώ είναι να γράφω greeklish, πχ

printf("dose arithmo\n");

Πάντως τα σχόλια του κώδικα γράφονται κανονικά στα Ελληνικά (αλλωστε, τα σχολια δεν μεταγλωτίζονται).

 

 

Δεν Το θέλω Για σχολική εργασία .. Πρέπει να Διαχηριστώ και να τυπώνω ελληνικους Χαρακτήρες Ascii Code 128 - 151:fear:

 

Δεν είναι πρόβλημα του Dev-C++, με οποιοδήποτε άλλο IDE γράφοντας ελληνικά σε πρόγραμμα κονσόλας θα είχες τα ίδια.

 

Σχετικά με το link που δίνεις στο άλλο thread : Έκανες αυτό που λέει ο φίλος στο post #5 (δεξί κλικ στο exe --> Create Shortcut --> δεξί κλικ στο shortcut που δημιουργήθηκε --> Properties --> καρτέλα Font --> επιλέγεις ως Font το Lucida Console) ;

 

ούτε η αλλαγή του φόντου Βοηθησε... αλλα αν εχώ καταλάβει καλά επιδη το πρόσεξα και αλλόυ το πρόβλημα αφτό μάλλον τρέχει κάτι με τα Windows μου ... Διότι γενικώς δεν Διαβαζουν Ελλινικα

ακόμα και στο Notepad ..!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ούτε η αλλαγή του φόντου Βοηθησε... αλλα αν εχώ καταλάβει καλά επιδη το πρόσεξα και αλλόυ το πρόβλημα αφτό μάλλον τρέχει κάτι με τα Windows μου ... Διότι γενικώς δεν Διαβαζουν Ελλινικα

ακόμα και στο Notepad ..!

 

help...το notepad εμφανιζει...κινεζικα!!

http://www.insomnia.gr/forum/showthread.php?p=1582355

 

 

Αν δεν έχεις ήδη, για να προσθέσεις εναλλαγή μεταξύ λατινικού/ελληνικoύ πληκτρολογίου (υποθέτοντας ότι αυτά συμβαίνουν σε άλλο PC από το οποίο μας γράφεις τώρα, αλλιώς θα βιάζαμε παρά φύσιν την κοινή λογική!) : http://www.insomnia.gr/forum/showpost.php?p=1937562&postcount=2

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

help...το notepad εμφανιζει...κινεζικα!!

http://www.insomnia.gr/forum/showthread.php?p=1582355

 

 

Αν δεν έχεις ήδη, για να προσθέσεις εναλλαγή μεταξύ λατινικού/ελληνικoύ πληκτρολογίου (υποθέτοντας ότι αυτά συμβαίνουν σε άλλο PC από το οποίο μας γράφεις τώρα, αλλιώς θα βιάζαμε παρά φύσιν την κοινή λογική!) : http://www.insomnia.gr/forum/showpost.php?p=1937562&postcount=2

 

 

ναι πράγματι Αυτό ήταν ..! τα δύο πρώτα Link βοήθησαν..!:mrgreen: Ευχαριστώ..!;):-D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>> Πρέπει να Διαχηριστώ και να τυπώνω ελληνικους Χαρακτήρες Ascii Code 128 - 151

 

Ascii codes από 128 ως 175 είναι η κωδικοσελίδα του DOS (cp737).

(βασικά Ascii λέγονται μόνο αυτοί που είναι <128 αλλά anyway).

Αν όντως θες cp737 και όχι κωδικοσελίδα των Windows (cp1253) τότε θα πρέπει ο editor (devcpp) που χρησιμοποιείς να υποστηρίζει OEM charset.

 

Δεν είμαι σίγουρος, αλλά αν θυμάμαι καλά ο devcpp δεν υποστηρίζει OEM charset, οπότε σ' αυτήν την περίπτωση θα χρειαστεί να τον αλλάξεις...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έχει δίκιο ο alkisg, οι χαρακτήρες από 128-151 που ζητάς είναι το κεφαλαίο ελληνικό αλφάβητο στην κωδικοσελίδα 737. Το Dev-C++ όμως θα σώσει οποιονδήποτε ελληνικό χαρακτήρα γράψεις με κωδικοποιήση 1253, όπου το mapping γίνεται σε εντελώς διαφορετικές τιμές (μπορείς να το διαπιστώσεις με έναν hex editor). Μία λύση είναι να ανοίξεις τα πηγαία αρχεία σου με το Notepad++, να ενεργοποιήσεις το ConvertExt plugin (Plugins --> ConvertExt... --> Generic... --> Convert to DOS (OEM)) και να ξανασώσεις. Αλλιώς, θα πρέπει είτε να εφαρμόσεις remapping για τους χαρακτήρες που σε ενδιαφέρουν είτε να αλλάξεις IDE. Προσωπικά, δε γνωρίζω αν υπάρχει κάποιο σύγχρονο IDE που να σώζει σε 737 encoding...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>> Πρέπει να Διαχηριστώ και να τυπώνω ελληνικους Χαρακτήρες Ascii Code 128 - 151

 

Ascii codes από 128 ως 175 είναι η κωδικοσελίδα του DOS (cp737).

(βασικά Ascii λέγονται μόνο αυτοί που είναι <128 αλλά anyway).

Αν όντως θες cp737 και όχι κωδικοσελίδα των Windows (cp1253) τότε θα πρέπει ο editor (devcpp) που χρησιμοποιείς να υποστηρίζει OEM charset.

 

Δεν είμαι σίγουρος, αλλά αν θυμάμαι καλά ο devcpp δεν υποστηρίζει OEM charset, οπότε σ' αυτήν την περίπτωση θα χρειαστεί να τον αλλάξεις...

 

Ναι δικό μου λάθος .. Μόνο Κεφαλέους Χαρακτήρες ....

και <128 Ascii αν έχω ακούσει σώστά είναι οι επεκτάση του Ascii ..!:fear:

 

edit:

 

Πές μου αν κάνω λάθος

 

απο το ελληνικό Wiki:

Παραλλαγές του ASCII

 

Καθώς διαδόθηκε η τεχνολογία των υπολογιστών ανά τον κόσμο πολλές παραλλαγές του ASCII αναπτύχθηκαν από εταιρίες και οργανισμούς τυποποίησης προκειμένου να διευκοληνθεί η κωδικοποίηση μη-αγγλικών γλωσσών που χρησιμοποιούσαν όμως το ρομανικό αλφάβητο. Μερικές από αυτές τις παραλλαγές μπορούν να θεωρηθούν Επεκταμένο ASCII ,αν και ο όρος μερικές φορές χρησιμοποιείται λανθασμένα για αναφορά σε όλες τις παραλλαγές συμπεριλαμβανομένου αυτών που δεν διατηρούν την κωδικοποίηση σε 7-bit μόνο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλά ας μην μπλέξουμε με τα φιλολογικά της Πληροφορικής γιατί δεν έχουμε και τσιπουράκι πρόχειρο για αμπελοφιλοσοφίες...

 

Π.χ. quote από http://en.wikipedia.org/wiki/ASCII:

"...Although these encodings are sometimes referred to as ASCII, true ASCII is strictly defined only by ANSI standard." Μόνο δηλαδή οι πρώτοι 128 χαρακτήρες λέγονται επίσημα ASCII.

Θα ήταν και λίγο γελοίο, "American Standard Code..." για ελληνικά γράμματα.

ΟΚ, άλλοι τα λένε παραλλαγές του ASCII, άλλοι επεκτάσεις κτλ. Πάντως "σκέτα" ASCII δεν είναι.

Υποτίθεται ότι αν κάποιος θέλει να μιλήσει και για τα 256 γράμματα σε περιβάλλον windows, λέει "ANSI" κωδικοσελίδα, και στην Ελλάδα αυτό σημαίνει cp1253.

Αντίστοιχα, σε περιβάλλον DOS λέει "OEM", δηλαδή cp737 ή cp869 σε κάτι περίεργες εγκαταστάσεις ελληνικών win9x.

 

Στο ψητό, π.χ. το Visual Studio (και το δωρεάν Express) υποστηρίζει όχι μόνο OEM κωδικοσελίδες για αρχεία .c, αλλά οποιεσδήποτε υποστηρίζουν τα Windows (αρκετές δεκάδες, και cp* και iso* και mac* και utf* κτλ).

 

Επίσης και το CodeBlocks υποστηρίζει πολλές, αλλά όχι cp737 (κρίμα και ο project leader είναι Έλληνας)!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επίσης, αν χρησιμοποιείς αρχεία ως είσοδο κειμένου, μπορείς να μετατρέψεις ένα 737-encoded αρχείο σε 1253 με το iconv που περιέχεται στο libiconv από κονσόλα, ως εξής :

 

>
iconv -f CP437 -t WINDOWS-1253 InputFile-737.txt > InputFile-1253.txt

 

Για 1253 -> 737, αναμενόμενα με :

 

>
iconv -f WINDOWS-1253 -t CP437 OutputFile-1253.txt > OutputFile-737.txt

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καταρχάς Ευχαριστώ Γιατο θέμα (Ascii Chars) >= 128 <= (Ascii Chars) :mrgreen:

 

Έχει δίκιο ο alkisg, οι χαρακτήρες από 128-151 που ζητάς είναι το κεφαλαίο ελληνικό αλφάβητο στην κωδικοσελίδα 737. Το Dev-C++ όμως θα σώσει οποιονδήποτε ελληνικό χαρακτήρα γράψεις με κωδικοποιήση 1253, όπου το mapping γίνεται σε εντελώς διαφορετικές τιμές (μπορείς να το διαπιστώσεις με έναν hex editor). Μία λύση είναι να ανοίξεις τα πηγαία αρχεία σου με το Notepad++, να ενεργοποιήσεις το ConvertExt plugin (Plugins --> ConvertExt... --> Generic... --> Convert to DOS (OEM)) και να ξανασώσεις. Αλλιώς, θα πρέπει είτε να εφαρμόσεις remapping για τους χαρακτήρες που σε ενδιαφέρουν είτε να αλλάξεις IDE. Προσωπικά, δε γνωρίζω αν υπάρχει κάποιο σύγχρονο IDE που να σώζει σε 737 encoding...

 

 

δεν υπάρχει κάπιος ήδη Compiler ώστε να μπορει να καταλάβει και τους επεκτάσημους Ascii Chars ....

 

και πάλι σας ευχαριστώ....;)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>> δεν υπάρχει κάπιος ήδη Compiler ώστε να μπορει να καταλάβει και τους επεκτάσημους Ascii Chars ....

 

Το είπα βρε στο ακριβώς προηγούμενο post μου. Visual Studio.

Επίσης Eclipse, Netbeans και διάφορα άλλα.

 

Και φυσικά μπορείς να συνεχίσεις να χρησιμοποιείς και το devcpp αν περνάς στον gcc τις επιλογές -finput-charset (=>1253)και -fexec-charset (=>737).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Χμμ .. Οκ ..!

 

Ναι συγνώμη Για την παράληψη άπλα ελεγα άμμα υπήρχε Κάπιος Compiler "Made in Greece" :P

 

Σε Ευχαριστώ και για της Εντολές ..!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Να σας ρωτήσω κι εγώ επι της ευκαιρίας γιατί με είχε απασχολήσει κι εμένα αυτό το πρόβλημα.

 

Είχα παρατηρήσει το εξής.

Όταν πας να εκτυπώσεις τον χαρακτήρα 'α' με την cout

σου εμφανίζεται ο χαρακτήρας 'ά' ο οποιός σύμφωνα με τον extended ascii table είναι στη θέση 225(73 θέσεις μετά το 'α'). Oπότε αρκεί να φτιάξουμε μια συνάρτηση που όταν είναι να εκτυπώσει τον χαρακτήρα 'α' θα εκτυπώνει το 'α' - 73.

>
#include <iostream>
using namespace std;

void gputchar(unsigned char c)
{

if(c == 225)
{
	c-=73;
	cout << c;
}
}



int main()
{
gputchar('α');

return 0;
}

και ούτω καθεξής.

Μπορείτε να μου πείτε κατά πόσο είναι σωστή αυτή η προσέγγιση; (πότε δουλεύει, πότε όχι)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...