我正在尝试使用c将一个文本文件复制到另一个文本文件

时间:2018-12-12 09:44:42

标签: c

我正在尝试将一个测试文件复制到C语言中的另一个测试文件中。但是我的代码无法正常运行,程序运行正常并生成文件CircleCode_temp,但文本文件中没有任何内容。任何想法为什么不起作用

   #include <stdio.h>
   #include <stdlib.h>

   char c; 

  int main(int argc, char **argv)
  {

  FILE *orginalFile = fopen("CircleCode1", "r");
  FILE *newFile = fopen("CircleCode_temp", "w");


    if (orginalFile == NULL | newFile == NULL)
     {
       printf("Cannot open file");
       exit(0);
     }


      while((c = fgetc(orginalFile))!=EOF)
      {
         fputc(c,newFile);
         c = fgetc(orginalFile);
       }


      fclose(orginalFile);
      fclose(newFile);

     return 0;
   }

1 个答案:

答案 0 :(得分:2)

  while((c = fgetc(orginalFile))!=EOF)
  {
     fputc(c,newFile);
     c = fgetc(orginalFile);
   }

这里有两个错误:

  1. 您在循环中两次调用fgetc,这会使其他所有字符都消失。

  2. 您将cEOF进行比较。您假设将fgetc的返回值与EOF进行比较。如果您认为它们相同,请记住c的类型为char,而fgetc返回的是int

也:

    if (orginalFile == NULL | newFile == NULL)

这里有一个错误。您有|是按位或,但您想使用||是逻辑或。