Ascii code tabelle ausgeben C
-
Hello World schrieb:
sO bin jetzt alles durchgegangen jetzt sind nur noch die ascii's plötzlich vertauscht -.- was ist jetzt falsch
Ich glaub's ja nicht. Wie viele Punkte bist du durchgegangen? Einen halben?
-
Das steigt ja keiner mehr durch.
#include <stdio.h> #include <ctype.h> /* fuer isprint */ #if 1 /* 1 fuer Dezimal, 0 fuer Hexadezimalzahlen */ #define FRM ".1d" #else #define FRM ".2X" #endif int main() { int z, anz_spalten = 16; int von = 0, bis = 127; printf(" %3c *", '+'); /* Spaltennummerierung */ for(z = 0; z < anz_spalten ;z++) printf("%3"FRM, z); printf("\n"); for(z = 0; z < (3*anz_spalten+6); z++) /* Trennlinie */ printf("*"); printf("\n"); for(z = von; z <= bis; z++) { if((z-von) % anz_spalten == 0) /* erstes Zeichen in der Zeile ? */ printf(" %3"FRM" *", z); /* Zeilennummern */ // printf("%3c", (z>=' ') ? z: ' '); /* Zeichen */ printf("%3c", isprint(z) ? z: ' '); /* Besser da ASCII nur bis 127 geht */ if((z-von) % anz_spalten == anz_spalten-1) /* letztes Zeichen in der Zeile ? */ printf("\n"); /* Zeilenende */ } return 0; }
-
wxSkip schrieb:
Ich glaub's ja nicht. Wie viele Punkte bist du durchgegangen? Einen halben?
Ich werf mich weg...
-
ASCII-Tabelle schrieb:
Das steigt ja keiner mehr durch.
Erstens das und zweitens entspricht das nicht den Voraussetzungen. (nur 16 statt 20 Spalten, nur bis 127)
-
wxSkip schrieb:
Erstens das und zweitens entspricht das nicht den Voraussetzungen. (nur 16 statt 20 Spalten, nur bis 127)
Naja, wenn der TO das im Quelltext anpasst, hat er ja noch was Eigenes gemacht.
-
DirkB schrieb:
wxSkip schrieb:
Erstens das und zweitens entspricht das nicht den Voraussetzungen. (nur 16 statt 20 Spalten, nur bis 127)
Naja, wenn der TO das im Quelltext anpasst, hat er ja noch was Eigenes gemacht.
Was sollen eigentlich die Defines?
-
SO nach langem übergehen meines Codes und das durchgehen euer Comment's hab ichs jetzt (hatte auch etwas Hilfe von einem Freund)
#include <stdio.h> int main() { int sterne =0, //Zählervariable für die Sternenreihe zahlenzeile =0, //Zählervariable für die Zahlenzeile zeilenh =0, //Zählervariable für den Zeilenumbruch spalten =0, //Zählervariable für die Spalten ascii =0; //Zählervariable für die Ausgabe der //ASCII-Codes printf("\nASCII-Code Tabelle\n\n"); //Ausgabe der Zahlenzeile printf(" * "); for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){ if(zahlenzeile<=9 && zahlenzeile >0) printf(" %d", zahlenzeile); else printf(" %d", zahlenzeile); } printf("\n"); //Zeilenumbruch //Ausgabe der Sternenzeile for(sterne=0; sterne<=65; sterne++) printf("*"); printf("\n"); //Zeilenumbruch //Ausgabe der ASCII-Codes for(spalten=0; spalten <= 255; spalten += 20) { printf(" %3d *", spalten); //Ausgabe Der Zeilennummern for(zeilenh = 0; zeilenh < 20; zeilenh++) { //Berechnung der ASCII's ascii = spalten + zeilenh; //Ausgabe aller ASCII's über 32 if(ascii < 32 || ascii > 255) { printf(" "); } else { printf("%3c",ascii); } } printf("\n"); } return 0; }
-
Nein, es stimmt immer noch nicht ganz... Vor der Spalte 0 ist eine Leerzeile zu viel.
-
Aber es funktioniert =)))
-
Na schön, dann hier meine Lösung aus den letzten 8 Minuten:
#include <stdio.h> int main() { printf("ASCII-Code Tabelle\n\n *"); for(int headline_num = 0; headline_num <= 19; ++headline_num) printf("%2d ", headline_num); printf("\n"); for(int stars = 0; stars <= 65; ++stars) putc('*'); for(int ascii = 0; ascii <= 255; ++ascii) { if(ascii % 20 == 0) printf("\n %3d *", ascii); printf(" %c ", ascii < 32 ? ' ' : (char)ascii); } }
-
Wow ... gut so professionel haben wir das noch nicht gelernt aber trotzdem ... RESPEKT
-
Hello World schrieb:
Wow ... gut so professionel haben wir das noch nicht gelernt aber trotzdem ... RESPEKT
Was ist daran professionell?
-
Alles du hast es viel efizienter gemacht als ich z.B. mit dem speichern der Variablen
-
Hello World schrieb:
Alles du hast es viel efizienter gemacht als ich z.B. mit dem speichern der Variablen
Nun gut, wenn Einfachheit auch zur Professionalität gehört
-
Nun gut, wenn Einfachheit auch zur Professionalität gehört
Find ich schon