Ascii code tabelle ausgeben C



  • Hello World schrieb:

    Gut vermutlich hast du recht ... kommen wir zum 1. Fehler in welcher Zeile liegt der?

    Willst du Debuggen, oder kannst du den Code so nachvollziehen?
    Welchen Fehler willst du denn gefunden haben?

    P.S.: Es gibt auch Programme, mit denen du Texte vergleichen kannst.



  • Debuggen wäre nicht schlecht (benütze Code::Blocks)
    Was bringt mir das Texte vergleichenen?



  • Hello World schrieb:

    Debuggen wäre nicht schlecht (benütze Code::Blocks)
    Was bringt mir das Texte vergleichenen?

    Damit du merkst, wo der Unterschied zwischen deiner Ausgabe und der Lösung liegt.



  • gut und wie mach ich das?



  • Google



  • xD Wie immer



  • Das mit dem Textvergleich war eigentlich ein verzweifelter Scherz, aber nun gut 😞



  • http://www.bildershare.de/?v=unbenannt-1295725599.png
    Hab jetzt plöztlich einen Warning: ascii may be uninatilized in this function, aber es beginnt jetzt richtig ?? komisch o.O was ist da jetzt passiert?



  • Ich kenne deinen Code nicht, aber du solltest in der Zeile, wo
    int ascii;
    steht, stattdessen folgendes schreiben:
    int ascii = 0;

    UND: Nein, es beginnt immer noch nicht richtig.



  • ok wo ist da der fehler??? Ich checks nicht 😕

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int sterne,
            zahlenzeile,
            zaehler1,
            zeilenh;
        int ascii=0;
        printf("     *");
        for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){
            if(zahlenzeile<=9)
                printf("  %d", zahlenzeile);
            else
            printf(" %d", zahlenzeile);
        }
        printf("\n");
        for(sterne=0; sterne<=65; sterne++){
            printf("*");}
        printf("\n");
        for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
            zeilenh=zaehler1%20;
            if(zeilenh==0)
            {
                printf(" %.3d *", zaehler1);
            }
    
            ascii++;
                if(ascii>=32)
                {
                    printf(" %c ", ascii);
                }
                else
                {
                    printf(" ");
                }
            if(zeilenh==19)
            {
                printf("\n");
            }
    
        }
        return 0;
    }
    


  • Zeile 25, 27, 33, 37, 41



  • Hab ich sie vertauscht oder ..??



  • So schon besser??

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int sterne,
            zahlenzeile,
            zaehler1,
            zeilenh;
        int ascii=0;
        printf("     *");
        for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){
            if(zahlenzeile<=9)
                printf("  %d", zahlenzeile);
            else
            printf(" %d", zahlenzeile);
        }
        printf("\n");
        for(sterne=0; sterne<=65; sterne++){
            printf("*");}
        printf("\n");
        for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
            zeilenh=zaehler1%20;
            if(zeilenh==19)
            {
                printf("\n");
            }
    
            ascii++;
                if(ascii>=32)
                {
                    printf(" %c ", ascii);
                }
                else
                {
                    printf(" ");
                }
            if(zeilenh==0)
            {
                printf(" %.3d *", zaehler1);
            }
    
        }
        return 0;
    }
    

    Jetzt sin die schon mal etwa in der richtigen reihen folge nur links das ist durcheinander -.-



  • Nein, das hat mit Vertauschen nichts zu tun. Wie ich bereits mindestens 2 mal gesagt habe, musst du zeilenh gar nicht auf 0 überprüfen. Und ich wette, du kapierst immer noch nicht, was in der Schleife passiert. Vielleicht solltest du ja mal deinen Mittagsschlaf nachholen.

    P.S.: Raten hilft nur selten weiter...



  • Hello World schrieb:

    Das leben ist ein Programm

    Und über die API und das Betriebssystem ist man sich noch nicht im Klaren 😃



  • wenn ich die überprüfung auf zeilenh==0 weg lasse kommt ein komplettes Chaos raus



  • Hello World schrieb:

    wenn ich die überprüfung auf zeilenh==0 weg lasse kommt ein komplettes Chaos raus

    Du sollst die nicht weglassen sondern auf etwas anderes als 0 prüfen. Worauf wurde schon geschrieben.

    Und dann schau mal wie viel Zeichen (auch Leerzeichen) du ausgibst, wenn dein Zeichen >= 32 und wenn < 32 ist (Zeile 33 und 37).



  • So ein letztes mal ...

    #include <stdio.h>
    
    int main()
    {
        int sterne      =0,
            zahlenzeile =0,
            spalten     =0;
        float zeilenh   =0;
        int ascii       =0,
            anzahl      =0;
        printf("     *");
        for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){
            if(zahlenzeile<=9 && zahlenzeile >0)
                printf("  %d", zahlenzeile);
            else
            printf(" %d", zahlenzeile);
        }
        printf("\n");
        for(sterne=0; sterne<=64; sterne++){
            printf("*");}
        printf("\n");
    
        for(spalten=0; spalten<=255; spalten++)
        {
            zeilenh=spalten%20;
            if(zeilenh == 0)
            {
                printf(" %3d *", spalten);
            }
            else if(zeilenh==19)
            {
                printf("\n");
            }
            ascii++;
                if(ascii >= 32 && anzahl <= 19)
                {
                    printf(" %c ", ascii);
                }
                else if(ascii < 32 && anzahl <= 19)
                {
                    printf(" ");
                }
        }
        return 0;
    }
    

    1. Benötige ich noch eine schleife? Wenn ja ... Wo mit welchen Variablen?
    2. Was Fehlt/ist zu viel/ist falsch bei den if else Verzweigungen
    3. Wo liegen sonnst noch Fehler

    BITTE



  • Das ist nicht dein Ernst, oder? Denk nach, dann wirst du auch auf eine Lösung kommen.

    EDIT: Kauf/Leih dir ein Buch, falls du noch keins hast.



  • Ich denke jetzt schon mind. 3 Stunden und komm nicht drauf !!! :(((((


Anmelden zum Antworten