C语言比较两个文本文件,打印出它们第一个不相同的行。(每行不多于50个字符) 【输入形式】 无输入,两个文件名为file1.txt,file2.txt,可直接读取 【输出形式】 不相同的两行 【样例输入】 文件1: aaaaaaaaaa bbbbbbbbb ccccccccccc ddddddddd 文件2: aaaaaaaaaa bbbbbbbbb cccc ddddddddd 【样例输出】 ccccccccccc cccc
时间: 2023-11-29 12:05:26 浏览: 119
以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 50
int main() {
FILE *fp1, *fp2;
char line1[MAX_LEN + 1], line2[MAX_LEN + 1];
fp1 = fopen("file1.txt", "r");
fp2 = fopen("file2.txt", "r");
while (fgets(line1, MAX_LEN + 1, fp1) != NULL && fgets(line2, MAX_LEN + 1, fp2) != NULL) {
if (strcmp(line1, line2) != 0) {
printf("%s%s", line1, line2);
break;
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
```
解释一下代码:
首先使用 `fopen()` 函数打开两个文件,分别赋值给 `fp1` 和 `fp2` 指针变量。
然后使用 `fgets()` 函数逐行读取两个文件的内容,并使用 `strcmp()` 函数比较两行内容是否相同,如果不同则打印出来并退出循环。
注意 `fgets()` 函数读取的一行最多只能有 `MAX_LEN` 个字符,包括行末的换行符。所以定义了一个 `MAX_LEN` 常量,并在读取时限制了读取的字符数。
最后使用 `fclose()` 函数关闭文件,释放资源。
阅读全文