本文介绍: 【代码】C //练习 7-6 编写一个程序,比较两个文件并打印它们第一个不相同的行。
C程序设计语言 (第二版) 练习 7-6
练习 7-6 编写一个程序,比较两个文件并打印它们第一个不相同的行。
注意:代码在win32控制台运行,在不同的IDE环境下,有部分可能需要变更。
IDE工具:Visual Studio 2010
代码块:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINE 1000
int main(int argc, char *argv[]) {
char* prog = argv[0];
FILE *fp1, *fp2;
unsigned long line;
char *fn1, *fn2;
char *fr1, *fr2;
char line1[MAXLINE], line2[MAXLINE];
if(argc != 3){
fprintf(stderr, "%s: must provide two files as inputsn", prog);
exit(1);
}
fn1 = *++argv;
if((fp1 = fopen(fn1, "r")) == NULL){
fprintf(stderr, "%s: cannot open %sn", prog, fn1);
exit(2);
}
fn2 = *++argv;
if((fp2 = fopen(fn2, "r")) == NULL){
fprintf(stderr, "%s: cannot open %sn", prog, fn2);
exit(2);
}
line = 1;
for(;; line++){
fr1 = fgets(line1, MAXLINE, fp1);
fr2 = fgets(line2, MAXLINE, fp2);
if(fr1 == NULL || fr2 == NULL){
break;
}
if(strcmp(line1, line2) != 0){
break;
}
}
if(fr1 == NULL && fr2 == NULL){
printf("files matchn");
exit(0);
}
if(fr1 == NULL || fr2 == NULL){
printf("file %s ended before file %sn",
(fr1 == NULL) ? fn1 : fn2,
(fr1 == NULL) ? fn2 : fn1);
}
else{
printf("mismatch on line %ld:n%s:n%sn%s:n%sn",
line, fn1, line1, fn2, line2);
}
system("pause");
return 0;
}
原文地址:https://blog.csdn.net/navicheung/article/details/135646948
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_58288.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。