请写一段C语言代码:比较两个文本文件并打印出它们第一个不相同的行(文件每行字符数不多于80)
时间: 2024-02-11 21:04:55 浏览: 170
以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 80
int main() {
FILE *fp1, *fp2;
char file1[MAX_LINE_LENGTH + 1], file2[MAX_LINE_LENGTH + 1];
fp1 = fopen("file1.txt", "r");
fp2 = fopen("file2.txt", "r");
int line_num = 0;
while (fgets(file1, MAX_LINE_LENGTH + 1, fp1) != NULL && fgets(file2, MAX_LINE_LENGTH + 1, fp2) != NULL) {
line_num++;
if (strcmp(file1, file2) != 0) {
printf("Line %d: \nFile 1: %sFile 2: %s", line_num, file1, file2);
break;
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
```
在这个实现中,我们假设 `file1.txt` 和 `file2.txt` 都在当前目录中。首先,我们打开这两个文件。然后,我们使用 `fgets()` 函数逐行读取两个文件的内容,并将其存储在 `file1` 和 `file2` 变量中。我们使用 `strcmp()` 函数比较这两个变量的内容。如果它们不同,我们打印出它们的内容和行号,然后退出循环。
注意,我们假设这两个文件的行数相同。如果它们的行数不同,我们可能会遇到文件结束的情况,这在代码中没有处理。此外,我们还假设每行字符数不多于 80。如果这个限制不适用于你的文件,请相应地更改 `MAX_LINE_LENGTH` 常量的值。
阅读全文