Moin Moin!
Hallo,
ich habe ein Programm in ANSI-C geschrieben, habe jetzt aber noch ein Problem mit Sonderzeichen. Hier ein Auszug:
FILE *ptr;
ptr = fopen("xxx.txt","rb");
Was passiert, wenn fopen fehlschlägt, weil Dir Rechte fehlen, die Datei nicht existiert, oder gelockt ist?
while((c = fgetc(ptr)) != EOF) { if(c==13) printf("\n"); else printf("%c", c);
Hier fehlen zwei Paar geschweifte Klammern, auch wenn der Compiler den Code ohne Klammern frißt. Irgendwann beißt Dich die Tippfaulheit.
}
Er gibt bis auf die Sonderzeichen alles richtig aus. Wenn ich printf("%i", c); ausprobiere, werden mir für die Sonderzeichen negative Werte ausgegeben.
Logisch. Die meisten C-Compiler definieren char als signed. (Was auch immer K&R geraucht haben, als sie das ausgebrütet haben ...)
Wie kann ich das bewerkstelligen, dass mir die richtigen Zeichen ausgegeben werden?
Definiere "richtig".
Ohne, dass ich mir jetzt für alle Sonderzeichen einzeln die Werte anzeigen lasse und dann per if-Befehl umwandel?
Suchst Du switch/case? Suchst Du eine ASCII-Tabelle?
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".