S
sehr schön.
der ansatz ist gut.
dein einziges problem (so weit ich es sehe) ist:
c=fgetc (in) != EFO
Ich nehme EFO mal als Tippfehler an, und nehme an, dass du EOF (End Of File) gemeint hast.
Das Problem ist hier aber, dass != eine höhere priorität als = hat.
auf deutsch heisst das, der compiler sieht es so:
c=(fgetc (in) != EOF)
leicht erkennbar: c wird true oder false zugewiesen, je nachdem ob fgetc EOF liefert oder nicht.
einfach klammern und gut ist:
(c=fgetc (in)) != EOF
jetzt gibt es nur noch ein gemeines problem: EOF ist ein int und passt daher in einen char nicht rein. Lösung ist: c als int zu definieren und nicht als char.
das ist leider eine gemeine Falle.
als resultat haben wir dann (kleine stilsachen verbessert):
#include <stdio.h>
int main (void)
{
char eingabedatei[20]; /* definition welche datei gewählt wird*/
char *ausgabedatei ="C:\\user\\eingabe.txt"; /*ziehl*/
char str[400];
int c;
FILE *in=NULL, *out=NULL; /* definition von lesen und schreiben*/
printf ("\n Geben Sie die zu bearbeitende datei ein \n");
scanf ("%s",eingabedatei);
in = fopen (eingabedatei,"r");
out =fopen (ausgabedatei,"w");
if ((NULL==in)||(NULL==out))
{
puts ("fehler beim offnen der Dateien");
if(in) fclose(in);
if(out) fclose(out);
return 1;
}
while ((c=fgetc (in)) != EOF)
{
fputc (c,out);
}
fclose(in);
fclose(out);
return 0;
}