Μετάβαση στο περιεχόμενο


Φωτογραφία

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


  • Παρακαλούμε συνδεθείτε για να απαντήσετε
19 απαντήσεις σ'αυτό το θέμα

#1 B@GOS.GR

B@GOS.GR

    Senior Member

  • Members
  • 217 μηνύματα

Δημοσίευση 05 January 2008 - 04:46 PM

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

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

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

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

Υ.Γ.

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

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

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

Ad Bot

Ad Bot

#2 parsifal

parsifal

    Super Moderator

  • Super Moderators
  • 18951 μηνύματα
  • LocationΘεσσαλονίκη

Δημοσίευση 05 January 2008 - 05:11 PM

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

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

#3 FrAcTaL-gR

FrAcTaL-gR

    Member

  • Members
  • PipPipPip
  • 69 μηνύματα

Δημοσίευση 05 January 2008 - 05:16 PM

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

#4 B@GOS.GR

B@GOS.GR

    Senior Member

  • Members
  • 217 μηνύματα

Δημοσίευση 05 January 2008 - 05:33 PM

Το ίδιο πρόβλημα είχα κι εγώ όταν ασχολήθηκα με τον 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 ..!

#5 parsifal

parsifal

    Super Moderator

  • Super Moderators
  • 18951 μηνύματα
  • LocationΘεσσαλονίκη

Δημοσίευση 05 January 2008 - 05:49 PM

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


help...το notepad εμφανιζει...κινεζικα!!
http://www.insomnia....d.php?p=1582355


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

#6 B@GOS.GR

B@GOS.GR

    Senior Member

  • Members
  • 217 μηνύματα

Δημοσίευση 05 January 2008 - 06:16 PM

help...το notepad εμφανιζει...κινεζικα!!
http://www.insomnia....d.php?p=1582355


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



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

#7 alkisg

alkisg

    Senior Member

  • Members
  • 2911 μηνύματα

Δημοσίευση 05 January 2008 - 09:34 PM

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

Ascii codes από 128 ως 175 είναι η κωδικοσελίδα του DOS (cp737).
(βασικά Ascii λέγονται μόνο αυτοί που είναι <128 αλλά anyway).
Αν όντως θες cp737 και όχι κωδικοσελίδα των Windows (cp1253) τότε θα πρέπει ο editor (devcpp) που χρησιμοποιείς να υποστηρίζει OEM charset.

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

#8 parsifal

parsifal

    Super Moderator

  • Super Moderators
  • 18951 μηνύματα
  • LocationΘεσσαλονίκη

Δημοσίευση 05 January 2008 - 11:21 PM

Έχει δίκιο ο 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...

#9 B@GOS.GR

B@GOS.GR

    Senior Member

  • Members
  • 217 μηνύματα

Δημοσίευση 06 January 2008 - 12:31 AM

>> Πρέπει να Διαχηριστώ και να τυπώνω ελληνικους Χαρακτήρες 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 μόνο.

#10 alkisg

alkisg

    Senior Member

  • Members
  • 2911 μηνύματα

Δημοσίευση 06 January 2008 - 01:22 AM

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

Π.χ. 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 είναι Έλληνας)!

#11 parsifal

parsifal

    Super Moderator

  • Super Moderators
  • 18951 μηνύματα
  • LocationΘεσσαλονίκη

Δημοσίευση 06 January 2008 - 01:40 AM

Επίσης, αν χρησιμοποιείς αρχεία ως είσοδο κειμένου, μπορείς να μετατρέψεις ένα 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


#12 B@GOS.GR

B@GOS.GR

    Senior Member

  • Members
  • 217 μηνύματα

Δημοσίευση 06 January 2008 - 01:53 AM

Καταρχάς Ευχαριστώ Γιατο θέμα (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 ....

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

#13 alkisg

alkisg

    Senior Member

  • Members
  • 2911 μηνύματα

Δημοσίευση 06 January 2008 - 09:38 AM

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

Το είπα βρε στο ακριβώς προηγούμενο post μου. Visual Studio.
Επίσης Eclipse, Netbeans και διάφορα άλλα.

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

#14 B@GOS.GR

B@GOS.GR

    Senior Member

  • Members
  • 217 μηνύματα

Δημοσίευση 06 January 2008 - 12:05 PM

Χμμ .. Οκ ..!

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

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

#15 tzekas

tzekas

    Member

  • Members
  • PipPipPip
  • 53 μηνύματα

Δημοσίευση 06 January 2008 - 01:41 PM

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

Είχα παρατηρήσει το εξής.
Όταν πας να εκτυπώσεις τον χαρακτήρα 'α' με την 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;
}
και ούτω καθεξής.
Μπορείτε να μου πείτε κατά πόσο είναι σωστή αυτή η προσέγγιση; (πότε δουλεύει, πότε όχι)