Forum: PC-Programmierung ASCII Tabelle mit for-Schleife


von anggrrr (Gast)


Lesenswert?

moin,

ich will die ASCII-Tabelle in einer for-Schleife ausgeben..soweit so 
gut. Jetzt machen sich allerdings merkwürdige Effekte bemerkbar, welche 
ich nicht checke?!

Wenn ich den Code folgend ausführe:

    for(int i = 0; i < 127; i++ ){
        printf(" %c ", i);
    }

bekomme ich die Tabelle ab "1" angezeigt, bis zum 127. Zeichen "~". also 
ohne die Zeichen, die vorher in der Tabelle liegen. Stattdessen kommen 
nur Leerzeichen.
Hab dann mal gegoogelt und etwas vergleichbares gefunden, bisschen 
rumprobiert und dann festgestellt, dass sobald ich in die printf-Klammer 
innerhalb der Anführungszeichen auch nur einen Buchstaben hinzufüge, zB 
so:

    for(int i = 0; i < 127; i++ ){
        printf("t %c ", i);
    }

..bekomme ich auch alle ASCII-Zeichen vor der "1" angezeigt. also dann 
auch "0" und was davor halt noch kommt. Funktioniert auch mit den 
meisten Sonderzeichen.
Warum ist das so??


Grüße
anggrrr

von Hmmm (Gast)


Lesenswert?

Lass die nicht darstellbaren Zeichen (unter 0x20) weg, Steuerzeichen 
produzieren je nach Terminal Nebenwirkungen.

von anggrrr (Gast)


Lesenswert?

jaaa..sehr gut, dann bekomme ich die Zeichen korrekt dargestellt :)
Hast Du ne Erklärung, warum das aber mit einem Zeichen in den "" 
funktioniert? Mag wohl eine Art Texterkennung vom Interpreter zu sein 
evtl?

von Hmmm (Gast)


Lesenswert?

Ich vermute, dass das Terminal ab dem 0x1b versucht hat, eine 
Escape-Sequenz zu parsen.

Je nachdem, welche Zeichen danach kommen, erkennt es dann irgendwann, 
dass es keine ist, und stellt den Rest normal dar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.