C 连接两个.y输入

C 连接两个.y输入,c,C,我有两个输入:video1.y和video2.y。我想连接这两个文件来创建一个video.y文件??我正在用C编写代码。这可能是一个基本问题,但无法做到!!两个输入具有相同的高度和宽度。 代码: video1.y和video2.y的大小为55MB。我的输出为3KB。我无法将这两个输入连接起来。变量c的类型是char这不能保存EOF的值和所有256字节的值 正如在您的计算机上发生的那样,char是一种有符号类型,因此来自fgetc的强制转换返回结果和EOF的强制转换值实际上意味着在文件末尾找到了一

我有两个输入:
video1.y
video2.y
。我想连接这两个文件来创建一个
video.y
文件??我正在用C编写代码。这可能是一个基本问题,但无法做到!!两个输入具有相同的高度和宽度。 代码:


video1.y和video2.y的大小为55MB。我的输出为3KB。我无法将这两个输入连接起来。变量
c
的类型是
char
这不能保存
EOF
的值和所有256字节的值

正如在您的计算机上发生的那样,
char
是一种有符号类型,因此来自
fgetc
的强制转换返回结果和
EOF
的强制转换值实际上意味着在文件末尾找到了一个
EOF
。问题是,如果文件包含
0xFF
字节,则这也被视为
EOF


总之,将
c
的类型更改为
int

我已更新了问题。如果您只想连接两个输入,然后使用dos命令附加二进制文件,请使用带/b开关的COPY命令。语法如下:
copy/b+/b[…]
-或-
copy/b+[…]
谢谢Ashwin的回答。我的目标是将两个输入连接起来。我已经为这两个输入编写了c程序,其中存在一些逻辑错误,因此我无法将这些输入连接到输出视频中。但是你的回答对我帮助很大。谢谢Hanks user3710044。在你提出建议后,它工作了。
int main()
{
   // Open two files to be merged
   FILE *fp1 = fopen("D:\\dump\\video1.y", "rb");
   FILE *fp2 = fopen("D:\\dump\\video2.y", "rb");

   // Open file to store the result
   FILE *fp3 = fopen("D:\\dump\\video.y", "wb");
   char c;  //Change char to int as per answer given by user3710044..
            //...Which is working !!
   if (fp1 == NULL || fp2 == NULL || fp3 == NULL)
   {
         puts("Could not open files");
         exit(0);
   }

   // Copy contents of first file to video3.y
   while ((c = fgetc(fp1)) != EOF)
      fputc(c, fp3);

   // Copy contents of second file to video3.y
   while ((c = fgetc(fp2)) != EOF)
      fputc(c, fp3);

   printf("Merged video1.y and video2.y into video.y");

   fclose(fp1);
   fclose(fp2);
   fclose(fp3);
   return 0;
}