может кто-нибудь показать мне
неважно, с моим кодом.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
FILE *fp1,*fp2;
char ch,ch1;
fp1=fopen("ma.dat","r");
fp2=fopen("na.dat","w");
while(!feof(fp1))
{
ch=fgetc(fp1);
fprintf(fp2,"%c ",ch);
}
fclose(fp1);
fclose(fp2);
}
Я пытаюсь читать из файла и писать в другой файл. некоторые проблемы есть.
заранее спасибо
Измените цикл while -
while(1) // or TRUE or for(;;)
{
ch=fgetc(fp1);
// or if (fp1 == -1)
if (feof(fp1)) { // you're printing eof to fp2... not a good idea.
break;
}
fprintf(fp2, "%c", ch); // or fputc(ch, fp2); your string format included a space!
}
или более короткий (идиоматический) -
while ((ch = fgetc(fp1)) != EOF)
fputc(ch. fp2);
Или вы можете использовать конкретный Linux,
fseek(fp1, 0L, SEEK_END);
long sz = ftell(fp1);
fseek(fp, 0L, SEEK_SET);
sendfile(fp2, fp1, 0, sz);
"some problem exist"
? и избегайте использования функции feof (),while( !feof( file ) ) is always wrong