actionbrowser.com
Sehr schön, deine Frage hat mir knapp eine Stunde Langeweile erspart. ^^ Und schon gehts los: Zuerst mal der passende Header (table.
Wird hierbei das Formatierungszeichen%d verwendet, würde dieser Wert nicht kodiert und in seiner tatsächlichen Form ausgegeben, wobei »tatsächliche Form« natürlich rein optisch gemeint ist. In Wirklichkeit wäre die tatsächliche Form eine Zahlenkolonne von Einsen und Nullen. Für den PC gelten weiterhin nur Bits und Bytes. Und wie Sie gesehen haben, funktioniert das analog auch mit dem Datentyp int. Achtung Auch wenn Sie char oder unsigned char für kleine Ganzzahlwerte verwenden könnten, ist von dieser Möglichkeit abzuraten. Dies vor allem, weil in C nicht festgelegt ist, ob dieser Datentyp mit oder ohne Vorzeichen interpretiert wird. Es könnte ähnlich wie bei int auf verschiedenen Systemen zu unterschiedlichem Verhalten oder gar zu Fehlern führen (siehe Abschnitt 7. 1 zu int). Ascii tabelle ausgeben c.s. Den Zeichentyp char kann man zwar auch mit signed oder unsigned spezifizieren, beachten Sie aber, dass char, unsigned char und signed char drei verschiedene Typen sind! Des Weiteren hängt es von der Compiler-Implementierung ab, ob char auch negative Zahlen aufnehmen kann.
for(zaehler1=0; zaehler1<=255; zaehler1++) for(zaehler2=0; zaehler2<=32; zaehler2++) printf("\b ");} zeilenh=zaehler1%20; if(zeilenh==0) printf("%d *\n", zaehler1);}?? So? Richtig! Aber nicht printf("\b "). Schau mal, wie viele Leerzeichen zwischen zwei Zeichen hinkommen und mach dir einen character, in den du entweder den Zähler oder ' ' reinschreibst, falls er kleiner als 32 ist. Diesen Character kannst du dann nach den Leerzeichen ausgeben (mit putc()). Nach dem Zeilenumbruch musst du natürlich noch 20/40/60 usw. ausgeben. (So wie auf deinem Bild halt) Weißt du eigentlich, was dein Code macht? Sieht nicht so aus. Rheinwerk Computing :: C von A bis Z – 5.11 Der Datentyp »char«. Testen? ja hab das Leerzeichen mit + ersetzt und gesehen das er das for 0, 20, 40,... hinmacht... Wie soll ich das jetz genau schreiben? So, dass das richtige rauskommt. Schau halt, was da steht: Zeile: Leerzeichen Zahl, die ggf. mit Leerzeichen aufgefüllt wird, wenn sie keine 3 Stellen besitzt Stern Wiederholung: Nächstes Zeichen in der ASCII-Tabelle oder Leerzeichen, falls Zeichen kleiner als 32 Leerzeichen, wenn Zeichen nicht durch 20 mit Rest 19 teilbar, sonst Zeilenumbruch und Ende der Wiederholung wxSkip schrieb: Wie geht das nochmal das er erkennt wie viele Stellen die Zahl hat?
9 Das Programm bei der Ausführung unter Linux Kommen wir jetzt zur Zeile: Wenn Sie char ein Zeichen zuweisen wollen, muss es zwischen zwei einzelnen Hochkommata stehen ( 'A'). Folgende Varianten sind nicht möglich bzw. falsch: // falsch, in doppelte Hochkommata == String char a = "A"; // falsch, Variablenzuweisung char a = A; /* schlechter Stil, da nicht gleich durchschaubar ist, ob der * Programmierer hier den ASCII-Buchstaben oder den * dezimalen Wert verwenden will */ Hier sehen Sie auch gleich die andere Möglichkeit, char einen Wert zuzuweisen. Für den PC sind der Wert 65 und das Zeichen 'A' identisch. Beide haben dieselbe Bitdarstellung: Abbildung 5. Tabelle in C mit ASCI? (Computer, Software, Programmieren). 10 Bitdarstellung des Dezimalwerts 65 und des Zeichens 'A' Dies bestätigt auch die Ausgabe im Programm: printf("b =%c\n", b); Auch wenn es hier so aussieht: In C gibt es keinen Datentyp, mit dem Sie echte Zeichen wie 'A', 'B' oder 'C' speichern können. Daher stehen diese Zeichen auch zwischen einzelnen Anführungszeichen. Sie geben zwar Folgendes an: aber nach der Übersetzung des Compilers sieht dies so aus: Verwenden Sie jetzt im Programm das Formatierungszeichen%c, wird der Wert 65 anhand der ASCII-Code-Tabelle kodiert.