Eurozeichen in C



  • Hallo,

    Ich würd gerne ein Eurozeichen in C einfügen, habe noch keinen passenden Code dafür gefunden. Aussehen soll das z.B. so:

    #define EURO "?"
    
    int main() {
      printf("Du hast 32 "EURO" bezahlt!");
    }
    

    Welcher Code muss für das ? bei #define stehen?



  • Das hängt sehr stark von deinem System ab.

    Auch davon, wo die Ausgabe hingeht.

    Du kannst mal nach Codepage suchen.

    Ich würde das offizielle "EUR" nehmen. DAs passt immer.

    Mit C hat das nichts zu tun.



  • Win7 64 bit, Dev C++, Ausgabe in die Konsole; ich hab das hier gepostet weil ich das Programm in C schreibe.

    https://en.wikipedia.org/wiki/Code_page_858

    Hab das hier gefunden. Code wäre 20AC unter der Index(?)nummer 213. Kommt das hin?
    Ach ja, was bedeuten die Werte ganz links/unten/oben B_, 5_ etc.?



  • 20AC ist der Wert im Unicode

    213 ist der Code im Dezimalsystem. Das entspricht D5 im Hexadezimalsystem

    Das D_ in den Zeilen gibt die 10er Stelle und die _5 in den Spalten die Einerstelle für das Hexadezimalsystem an.

    Du kannst demnach das Eurozeichen mit "\xD5" definieren
    Oder als "\325" (das ist der Wert im Oktalsystem.

    ... wenn du diese Codepage hast.



  • Kommt leider immer das Selbe raus, nämlich irgend eine komische Abwandlung eines 'F'. Liegt das am Compiler? Dev C++ wird ja nicht gerade in den höchsten Tönen gelobt...



  • Nein, es liegt, wie schon mehrmals gesagt, an der Codepage.



  • Dev-Cpp ist kein compiler, aber du kannst es ruhig wegwerfen. Nimm stattdessen z.B. CodeBlocks.
    Am compiler liegt es nicht wohl eher an der Konsole



  • Now I'm confused.

    Dev-Cpp kein Compiler? 😕



  • Dev-Cpp ist lediglich eine Entwicklungsumgebung in die der compiler gcc integriert ist. Es ist aber sehr verbuggt und deshalb nicht zu empfehlen.



  • Das einfachste ist aber, selber zu ermitteln, welchen Code das Euro-Zeichen hat.

    Du schreibst ein Programm, welches die Zeichen von 128 bis 255 ausgibt.

    for(int z = 128;z<=255;z+=16) 
      { printf("%2x : ",z);
        for(int s = 0;s<16;s++) 
        { printf("%c ",s+z);
        }
        printf("\n");
      }
    


  • Gefäät mir. Wird übernommen dange


Log in to reply