Closed. This question needs details or clarity. It is not currently accepting answers. Learn more
想改进这个问题吗?添加细节并通过editing this post澄清问题。
5年前关闭。
有人能给我看看吗
我的密码有问题。
#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);

10-04 21:08