input/output probleme

Darko

Grünschnabel
ich habe folgendes programm geschrieben, das eine datei einlesen und in eine andere datei schreiben soll:
Code:
#include <stdlib.h>
#include <stdio.h>

main()
{
  FILE *fi, *fo;
  
  fi = fopen("test.txt", "rt");
  fo = fopen("test_out.txt", "wt");
  if(!fi || !fo)
    exit(1);
  
  while(!feof(fi))
    fputc(fgetc(fi), fo);
  
  fclose(fi);
  fclose(fo);
}
Leider wird bei der neuen datei IMMER am ende ein ÿ (0xFF) angehängt.
Wenn z.B. in der ersten datei "Hallo" stand, steht in der neuen "Halloÿ".
Weiß jemand wie ich dieses ÿ loswerde?
 
Zuletzt bearbeitet:
Das ist vermutlich das EOF, das als letztes gelesen wird.
Aus der <stdio.h>:
Code:
#define EOF     (-1)
Probier es so:

Code:
int temp = 0;
while(!feof(fi))
{ 
  temp = fgetc(fi);
  if ( temp != EOF )
    fputc(temp, fo);
}
 
Zurück