Problem bei der Darstellung einer ASCII - Tabelle
-
Schönen Guten Tag,
Ich möchte eine ASCII Tabelle erstellen, was bisher auch gut funktioniert (Okt, Dec, Hex und Zeichen werden angezeigt) jedoch habe ich ein Problem mit der Formatierung.
Aussehen soll es so:
http://img5.imagebanana.com/view/7eeurts/Namenlos.jpg
Jedoch funktioniert es nicht so ganz
http://img5.imagebanana.com/view/bry4qg9s/Namenlos1.jpg
Ich weiß, das es mit zwei for-Schleifen möglich ist, nur mir fehlt der Gedankenstoß. Probiert mit zwei Schleifen habe ich es zwar schon, nur wird dann die ASCII-Tabelle je nach Bedingung immer wiederholt. (Irgendwie auch logisch
)
Hier mal der C Code:
#include <stdio.h> #include <stdlib.h> int main () { int i = 0; printf("***\tASCII-Tabelle\t***\n"); for (i = 0;i <= 3; i++){ printf("Okt Dez Hex Zch\t\t"); } printf("\n----------------------------------------------------------------------------------------\n"); for(i=0;i<127;i++){ if(i<32 || i == 127){ printf("%03o %03i %03x ... \n", i, i, i); }else{ printf("\t\t\t%03o %03i %03x %3c \n", i, i, i, i); } } return 0; }
Ich bedanke mich jetzt schon einmal für die Hilfe.
Mit freundlichem Gruss
Gusty
-
Du musst alles in einem Rutsch ausgeben. In ANSI C gibt es keinen Weg Zeilen zurück zu gehen. Du könntest ansonsten auch systemabhängige Lösungen nehmen, wenn du willst. Welches Betriebssystem/welchen Compiler nutzt du?
-
Hallo,
ich benutzte den erweiterten Vi Editor unter OpenSuse 10.2 (VMware). Dies ist vom Professor vorgeschriebenWir haben diese Aufgabe heute theoretisch bearbeitet und der Prof. sagte, das diese Aufgabe mit zwei for-Schleifen realisierbar wäre, was mich persönlich auch verwundert hat, da ich vorher schon mit c++ arbeite und ihn drauf hinwies das ich keiner der Vorschläge umsätzen könnte.
PS: Ich habe mich noch bisschen durch gegooglt und habe paar Code Schnipsel mit Array's und Modulo gefunden. Sollte ich (ohne Array) eine Antwort finden, werde ich sie hier Posten.
PPS: Über andere Vorschläge würde ich mich weiterhin freuen.
MfG
-
Mach doch einfach alle Ausgaben in ein printf Statement
#include<stdio.h> #include<stdlib.h> int main() { printf("***\tASCII-Tabelle\t***\n"); for( unsigned i = 0;i <= 3; i++) { printf("Okt Dez Hex Zch\t\t"); } printf("\n----------------------------------------------------------------------------------------\n"); for(unsigned i = 0; i < 32; ++i) { printf("%03o %03i %03x ...\t\t%03o %03i %03x %3c\t\t%03o %03i %03x %3c \n", i, i, i, i+32, i+32, i+32, i+32, i+64, i+64, i+64, i+64); } }
-
Hallo,
rüdiger ich bedanke mich für deine Hilfe. Das ist genau das was ich wollteMfG
-
Hallo,
für die, die es noch interessiert habe ich noch eine zweite Lösung.#include <stdio.h> #include <stdlib.h> #define ASCII 128 #define SPALTEN 4 #define ZEILEN ASCII/SPALTEN int main () { // Deklaration int i = 0, j = 0; //Ausgabe ASCII-Tabelle for(i=0;i<SPALTEN;i++){ if(i<SPALTEN-1){ printf("Okt Dez Hex Zch "); }else{ printf("Okt Dez Hex Zch \n"); } } //Ausgabe Okt, Dez, Hex, Zch for(i=0;i<ZEILEN;i++){ for(j=0;j<ASCII;j=j+ZEILEN){ printf("%03o %03d %03x ", i+j, i+j, i+j); if (( (i+j>=0) && (i+j<=31) )||(i+j == 127)){ printf("... "); }else{ printf(" %c ", i+j); } } printf("\n"); } return 0; }
MfG