char ausgabe %c
-
noch ein kleiner auszug dazu:
Multibyte-Zeichen sind insbesondere die Zeichen des Uni(-versal)Codes, der in Java und bei Internet-Browsern große Bedeutung gewonnen hat. Unter UNIX wird in der Regel der bekannte ASCII- Zeichensatz ( American Standard Code for Information Interchange ) verwendet. Da in einem 8-Bit-Code 28=256 Zeichen möglich sind, belegt der ASCII-Code mit den Zeichen Nr. 0 bis Nr. 127 genau die erste Hälfte. Die Verwendung der Zeichen Nr. 128 bis Nr. 255 ist bei Verwendung des ASCII-Codes maschinenabhängig. Die Darstellung hängt vom Betriebssystem und von dem jeweils geladenen Tastaturtreiber ab. Ein typisches Beispiel für ein Durcheinander von Zeichensätzen erhält man, wenn man einen Windows-Text mit Umlauten in einem DOS-Fenster liest.
aus: http://www.addison-wesley.de/katalog/bsp/382731531Xbsp.htm
-
ich kann aber keinen code vertragen, der soviele leerzeilen enthält
Und ich kriege eine Anomalie, wenn ich einen printf-prototype sehe.
-
Mr. N & elise: Auch wenn das mittlerweile nicht mehr der Diskussionspunkt ist: Bei Funktionen mit variabler Arumentleiste werden die Defaultpromotionen durchgeführt, ein char wird also hier als int übergeben, ein float als double, ein short als int usw usf. Und laut meiner Dokumentation gibt '%c' einen unsigned char aus, also ist der Cast auf char überflüssig (wenn ein char einen kleineren Wertebereich als int hat).
-
ich sehe grad, es ist compilerabhängig...
kann mir einer erklären, warum auf gleichem rechner, das studio den obigen code mit dem auswurf von mart macht, A mit strich auf 182, der cygwin aber tatsächlich auf der 193 das A mit strich fährt?
ich dachte, es ist rechnerabhängig...
[ Dieser Beitrag wurde am 05.04.2003 um 13:29 Uhr von elise editiert. ]
-
Es ist sogar abhängig von der verwendeten Schriftart.
Manche Schriften machen dann ein Herzchen oder sowas
-
@elise
das liegt wahrscheinlich daran, dass Cygwin ja ein POSIX/Unix Emulator ist und deswegen auch einen anderen Zeichensatz nutzt/emuliert
-
ich nehme an, der Visual nimmt den DOS-Konsolen-Zeichensatz und der Cygwin ISO-8859-1.
-
Bisher dachte ich immer das der ASCII Code einheitlich wäre ... wieso tauchen auf einmal solche unterschiede auf?
-
@mart
die lösung deiner probleme: nimm den cygwin
-
@elise: Nene, C coden dürfen die, die Kernel baun. (Und fürn Team bin ich zu jung *g*)
@Bitsy: Ein Prototyp ist schneller als ein #include - für den Compiler.
@Daniel E.: Darauf hatte ich schon hingewiesen :p
-
@elise: weil ich cygwin verwendet habe, bin ich ja komplett umgestiegen - und hab sogar ut2003 (die demo) - mein lieblingsspiel
-
Original erstellt von Angel84:
Bisher dachte ich immer das der ASCII Code einheitlich wäre ... wieso tauchen auf einmal solche unterschiede auf?ASCII (ASCII heißt schon 'American Standard Code for Information Interchange'; nochmal ein Code dahinterzuschereiben kommt mir irgendwie komisch vor...), umfasst nur den Bereich von 0 bis 127. Der Rest ist eben irgendwas anderes.
Original erstellt von Mr. N:
@Daniel E.: Darauf hatte ich schon hingewiesen :pJa, mit einer Einschränkung (»zumindest aufm x86 meines wissens«), die überflüssig war und einen mitlesenden Neuling verwirren könnte.
-
@Mr.N: aber ein include ist wiederum schneller als ich, wenn ich mich an den Prototyp von printf erinnern muss. Da hätte ich spontan keine Ahnung, ob es mit int oder void anfängt. Und nach dem ersten fehlerhaften Compilieren ist der Zeitvorteil endgültig weg.
-
also den Bereich jenseits von 127 kenn ich als "erweiterten ASCII" .... Mit anderen Worten: Weshalb der Bereich jenseits von 127 so unterschiedlich is ist mir immernoch schleierhaft
@daniel e: Das passiert wenn man noch völlig verschlafen hier was postet ...
-
weil der ASCII Standard eben nur die ersten 7Bit des Codes festlegen. Ich glaub das liegt daran, dass das 8Bit früher für irgend welche anderen Dinge gebraucht wurde (bei Terminals kann man ja immer noch einstellen ob man 8Bit oder 7Bit übertragung haben will).
Der Rest wurde dann von anderen Standard hinzugefügt. Das hat mit dem Urspünglichen ASCII Standard nichts zu tun.
-
Original erstellt von Angel84:
also den Bereich jenseits von 127 kenn ich als "erweiterten ASCII" .... Mit anderen Worten: Weshalb der Bereich jenseits von 127 so unterschiedlich is ist mir immernoch schleierhaftAndere Länder, andere Sprachen, andere Buchstaben/Zeichen.
-
Original erstellt von kingruedi:
**weil der ASCII Standard eben nur die ersten 7Bit des Codes festlegen. Ich glaub das liegt daran, dass das 8Bit früher für irgend welche anderen Dinge gebraucht wurde (bei Terminals kann man ja immer noch einstellen ob man 8Bit oder 7Bit übertragung haben will).Der Rest wurde dann von anderen Standard hinzugefügt. Das hat mit dem Urspünglichen ASCII Standard nichts zu tun.**
thx ... das is ne Erklärung die ich auch nachvollziehen kann