[gelöst] Ascii Zeichen Probs



  • Hi Leute,
    habe mir hier ein schönes Feld gebastelt mit Ascii Codes.
    Hat lang genug gedauert....
    Aber irgendwie funktioniert es nicht wenn ich statt eines
    Spaces eine Buchstaben einsetzen will siehe Code:

    #include <stdio.h>
    
    int main (void)
    {
        /* Die nachfolgenden Zahlencodes sind
           aus der Extened Ascii Table entnommen. */
    
        int e1 = 201; /* e1 = Ecke oben links */
        int e2 = 200; /* e2 = Ecke unten links */
        int e3 = 187; /* e3 = Ecke oben rechts */
        int e4 = 188; /* e4 = Ecke unten rechts */
        int h = 205;  /* h = Horiz. Stück ohne Abzwg. */
        int h1 = 202; /* h1 = Horiz. Stück mit Abzwg. oben */
        int h2 = 203; /* h2 = Horiz. Stück mit Abzwg. unten */
        int v = 186;  /* v = Vert. Stück ohne Abzwg. */
        int v1 = 185; /* v1 = Vert. Stück mit Abzwg. links*/
        int v2 = 204; /* v2 = Vert. Stück mit Abzwg. rechts*/
        int m = 206; /* m = Mittelstück*/
        int s = 32; /* s = Space */
    
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", e1, h, h2, h, h2, h, h2, h, h2, h, h2, h, h2, h, e3);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v, s, v, s, v, s, v, s, v, s, v, s, v, s, v);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v2, h, m, h, m, h, m, h, m, h, m, h, m, h, v1);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v, s, v, s, v, s, v, s, v, s, v, s, v, s, v);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v2, h, m, h, m, h, m, h, m, h, m, h, m, h, v1);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v, s, v, s, v, s, v, s, v, s, v, s, v, s, v);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v2, h, m, h, m, h, m, h, m, h, m, h, m, h, v1);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v, s, v, s, v, s, v, s, v, s, v, s, v, s, v);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v2, h, m, h, m, h, m, h, m, h, m, h, m, h, v1);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v, "f", v, s, v, s, v, s, v, s, v, s, v, s, v);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v2, h, m, h, m, h, m, h, m, h, m, h, m, h, v1);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v, s, v, s, v, s, v, s, v, s, v, s, v, s, v);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", e2, h, h1, h, h1, h, h1, h, h1, h, h1, h, h1, h, e4);
    
        getch();
        return 0;
    
    }
    

    Hoffe auf Hilfe
    MfG Jonas 😉

    Nachtrag: Mein Buchstabe "f" steht in der 4. letzten Printf Anweisung.



  • printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", v, 'f', v, s, v, s, v, s, v, s, v, s, v, s, v);
    

    Versuch's mal so. 😉

    Mit %c gibst du explizit ein einzelnes Zeichen aus.

    "f" ist jedoch ein String, welchen du mit %s ausgeben könntest.
    'f' hingegen repräsentiert wirklich nur ein Zeichen, daher klappt damit auch %c einwandrei!



  • Funktioniert dankeschön!
    So ein Fehler auf den ich bestimmt noch öfter reinfalle 😃

    MfG Jonas



  • Hi,

    also ich würd das:

    printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", e1, h, h2, h, h2, h, h2, h, h2, h, h2, h, h2, h, e3);
    

    entweder so:

    char szOben[] ="0xXX0xXX....."; /*einzelnen werte in hex hin schreiben*/
    ...
    printf("%s", szOben);
    

    oder

    #define ROWS 13
    #define COLUMNS 15 
    
    #define CORNER_LEFT 0xC9
    /*usw.*/
    
    /*und die ne schleife baun mit ein paar ifs*/
    int x ,y;
    for(y = 0; y < ROWS; y++)
    {
        for(x = 0; x < COLUMNS; x++)
        {
             /* ifs und ausgabe mit putc()*/
        }
        putc('\n');
    }
    
    ....
    

    Find ich persönlich schöner 😃

    Gruß Pingu



  • Du stehst auf Hexwerte oder 😃
    Ist das bei dir "reines" C oder C++ ?

    MfG Jonas


Log in to reply