比较两个文本文件,打印出它们第一个不相同的行。(每行不多于50个字符) 【输入形式】 无输入,两个文件名为file1.txt,file2.txt,可直接读取 【输出形式】 不相同的两行 【样例输入】 文件1: aaaaaaaaaa bbbbbbbbb ccccccccccc ddddddddd 文件2: aaaaaaaaaa bbbbbbbbb cccc ddddddddd 【样例输出】 ccccccccccc cccc
时间: 2023-11-29 16:05:26 浏览: 75
以下是 Python 代码实现:
```python
with open("file1.txt", "r") as f1, open("file2.txt", "r") as f2:
for line1, line2 in zip(f1, f2):
if line1 != line2:
print(line1.strip())
print(line2.strip())
break
```
解释一下代码:
首先使用 `with open()` 语句打开两个文件,并使用 `zip()` 函数将两个文件逐行打包成元组,方便同时读取。
然后使用 `for` 循环逐行比较两个文件的内容,如果有不同的行,则打印出来并退出循环。注意使用 `strip()` 函数去掉行末的换行符。
相关问题
比较两个文本文件,打印出它们第一个不相同的行。(每行不多于50个字符) 【输入形式】 无输入,两个文件名为file1.txt,file2.txt,可直接读取 【输出形式】 不相同的两行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];
int line_num = 1;
int flag = 0;
fp1 = fopen("file1.txt", "r");
fp2 = fopen("file2.txt", "r");
while (fgets(line1, MAX_LEN, fp1) != NULL && fgets(line2, MAX_LEN, fp2) != NULL) {
if (strcmp(line1, line2) != 0) {
printf("line %d: %s", line_num, line1);
printf("line %d: %s", line_num, line2);
flag = 1;
break;
}
line_num++;
}
if (!flag) {
printf("No difference found.\n");
}
fclose(fp1);
fclose(fp2);
return 0;
}
```
注:该程序只比较两个文件的前n行,n为两个文件中行数较小的那个。如果需要比较全部行,需要在while循环中分别加上feof()判断。
c语言比较两个文本文件,打印出它们第一个不相同的行。(每行不多于50个字符) 【输入形式】 无输入,两个文件名为file1.txt,file2.txt,可直接读取 【输出形式】 不相同的两行 【样例输入】 文件1: aaaaaaaaaa bbbbbbbbb ccccccccccc ddddddddd
好的,这里是 C 语言的实现,类似于 Python 的实现,也是逐行比较两个文件的内容,找到第一个不相同的行并输出:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LEN 50
int main() {
FILE *fp1, *fp2;
char line1[MAX_LINE_LEN + 1], line2[MAX_LINE_LEN + 1];
int line_num = 0;
fp1 = fopen("file1.txt", "r");
fp2 = fopen("file2.txt", "r");
while (fgets(line1, MAX_LINE_LEN + 1, fp1) && fgets(line2, MAX_LINE_LEN + 1, fp2)) {
line_num++;
if (strcmp(line1, line2) != 0) {
printf("第%d行不同:\n", line_num);
printf("文件1:%s", line1);
printf("文件2:%s", line2);
break;
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
```
上面的代码会按行读取文件 `file1.txt` 和 `file2.txt`,并比较它们的内容。如果两个文件的行数不同,会比较它们的前面相同的行。同样地,上面的代码假设每行不超过 50 个字符,如果超过了这个长度,可以将 `MAX_LINE_LEN` 常量改为相应的长度限制。
阅读全文