Moin Moin!
Hallo,
deine Kritikpunkte zu meinem Code habe ich im richtigen Programm schon umgesetzt.
Hatte mir das nur schnell rausgeschrieben und dabei halt das "Unwichtige" weggelassen, was zur reinen Beschreibung des Programmablaufs nicht nötig ist.
Habe jetzt folgendes:
/.../
int main ()
{
unsigned char c;
FILE *ptr;ptr = fopen("xxx.txt","rb");
Nochmal: Was passiert, wernn fopen fehlschlägt?
while((c = fgetc(ptr)) != 255)
Die Zuweisung an c ist ok, der Typ von c ist falsch! Was liefert fgetc() zurück? Sieh bitte mal in der Doku nach. Es ist weder ein signed char noch ein unsigned char. Denn beide Varianten könnten nicht den gesamten Wertebereich PLUS eof-Bedingung abdecken.
Der Vergleich mit 255 ist vollkommen falsch und ein Folgefehler des kaputten impliziten Casts von fgetc(). Du willst mit der Konstante EOF vergleichen, und mit nichts anderem.
{
if(c==13)
Wenn überhaupt, willst Du c hier casten.
printf("\n");
else
printf("%i ", c);
}
getch();
return 0;
}
>
> Das Problem ist, dass er mir für "ä" z.B. 228 und "ü" 252 ausgibt, d.h. es werden falsche Zeichen ausgebeben.
Was ist an en Zeichen 2, 5 und 8 falsch? Exakt diese Zeichen forderst Du mit printf("%i",c) an. Was willst Du stattdessen ausgeben?
> Es kann ja nicht sein, das ich für den kompletten ASCII Code von 128 - 255 switch Anweisungen schreibe?!
Was genau willst Du ausgeben?
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".