我们需要检查 2 个文件是否包含相同的字节编写一个 C 程序,它接受两个参数,都是文件名。如果两个文件不同compare_file.c,无论它们是否不同, 都应该打印第一个字节的位置。使用与以下示例相同的格式。如果一个文件比另一个文件短,但它包含的字节与另一个文件相同,compare_file.c则应打印一条消息指示这一点。使用与以下示例相同的格式。如果这 2 个文件包含完全相同的字节,compare_file.c则应打印一条消息来指示这一点。再次使用与以下示例相同的格式。下面有机翻
2条回答 默认 最新
- 技术专家团-小桥流水 2021-11-17 08:55关注
代码如下:
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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 悬赏!微信开发者工具报错,求帮改