啦啦啦拉拉裤 2021-11-16 20:58 采纳率: 69.1%
浏览 86
已结题

C语言问题,比较两个文件的字节数

我们需要检查 2 个文件是否包含相同的字节编写一个 C 程序,它接受两个参数,都是文件名。如果两个文件不同compare_file.c,无论它们是否不同, 都应该打印第一个字节的位置。使用与以下示例相同的格式。如果一个文件比另一个文件短,但它包含的字节与另一个文件相同,compare_file.c则应打印一条消息指示这一点。使用与以下示例相同的格式。如果这 2 个文件包含完全相同的字节,compare_file.c则应打印一条消息来指示这一点。再次使用与以下示例相同的格式。下面有机翻

img

img

  • 写回答

2条回答 默认 最新

  • 关注

    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
        char ch1,ch2;
        int i= 0;
        FILE* fp1,*fp2;
        if(argc != 3)
        {
            printf("参数不符合要求");
            return 0;
        }
        
        //打开文件
        if( (fp1 = fopen(argv[1],"r")) ==0)
        {
            printf("文件1打开失败\n");
            return 0;
        }
    
        if( (fp2 = fopen(argv[2],"r")) ==0)
        {
            printf("文件2打开失败\n");
            return 0;
        }
    
        while( (!feof(fp1))&&(!feof(fp2))  )
        {
            fread(&ch1,1,1,fp1);
            fread(&ch2,1,1,fp2);
            if(ch1 != ch2)
            {
                printf("Files differ at byte %d\n",i);
                fclose(fp1);fclose(fp2);
                return 0;
            }
            i++;
        }
        if (feof(fp1) && feof(fp2))
        {
            printf("Files are identical\n");
        }else if ( feof(fp1) && (!feof(fp2)) )
        {
            printf("EOF on %s\n",argv[1]);
        }else if ( (!feof(fp1))&& feof(fp2))
        {
            printf("EOF on %s\n",argv[2]);
        }
        fclose(fp1);
        fclose(fp2);
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月16日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改