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
Lass die nicht darstellbaren Zeichen (unter 0x20) weg, Steuerzeichen produzieren je nach Terminal Nebenwirkungen.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.