#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1024
int main(void)
{
FILE *f1;
FILE *f2;
char buffer1[MAX];
char buffer2[MAX];
if((f1 = fopen("1.txt" , "r")) == NULL)
{
printf("打开文件 1.txt 失败!n");
exit(EXIT_FAILURE);
}
if((f2 = fopen("2.txt" , "r")) == NULL)
{
printf("打开文件 2.txt 失败!n");
exit(EXIT_FAILURE);
}
while(!feof(f1) || !feof(f2)) //检测到文件末尾,返回非 0 值,否则返回 0 值
{
fscanf(f1 , "%s" , buffer1);
fscanf(f2 , "%s" , buffer2);
/*
fscanf 遇到空格、换行符时结束
fgets 遇到换行符时结束
假设 1.txt 文件内容 < 2.txt 文件内容
则 f1 将持续读取到 EOF,即 buffer1 内容持续不变
而 f2 将继续读取新内容,即 buffer2 内容持续变化
即 buffer1 和 buffer2 持续比较
注意:文件中最后一行有换行符存在,则最后一次比较将重复比较输出一次
*/
if(!strcmp(buffer1 , buffer2)) //两个字符串完全一致,则返回 0 值
{
printf("%-8s = %8sn" , buffer1 , buffer2);
}
else
{
printf("%-8s X %8sn" , buffer1 , buffer2);
}
}
printf("n");
fclose(f1);
fclose(f2);
printf("n");
system("pause"); //请按任意键继续...
return 0;
}
c语言写入txt文件_C 语言入门 09 以字符串形式对比两个 txt 文件的内容
最新推荐文章于 2022-12-16 00:04:04 发布