gpt4 book ai didi

比较 2 个文件

转载 作者:行者123 更新时间:2023-11-30 15:02:18 24 4
gpt4 key购买 nike

我有一个问题,我需要制作一个程序来比较两个文件。如果在第一个文件中我有:

Milk
Sugar
Eggs

在第二个文件中我有

Vanilla
Soda
Sugar

我想显示两个文件中出现的行。

我对c没有太多经验,但我尝试过一些东西。但我的问题是,如果 Sugar 不在同一行,我如何将 Sugar 显示为输出?

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#define MAX 100

void equal (char*lineone,char*linetwo){
if(strcmp(lineone,linetwo)==0){
printf("%s",lineone);
}
}
int main(){
FILE *fp1,*fp2;
fp1=fopen("D:/aici/file1.txt","r");
fp2=fopen("D:/aici/file2.txt","r");
char buff[MAX],buff1[MAX];
int i=0;
while((fgets(buff,MAX,fp1)!=NULL)&&(fgets(buff1,MAX,fp2))!=NULL){
//i++;
equal(buff,buff1);
}
}

最佳答案

您应该做的(出于性能原因)是将所有单词保存到两个缓冲区中,然后比较它们。但是,您也可以通过对实现进行一些更改来做到这一点,只需要将循环分为一个主循环和一个内部循环,这样您就会得到这样的效果:对于文件 1 中的每个单词,它将比较文件 2 中的所有单词,同样,与先保存所有单词相比,这是非常慢的方法然后才相互比较。

void equal (char*lione,char*linetwo){
if(strcmp(lione,linetwo)==0){
printf("%s",lineone);
}
}
int main(){
FILE *fp1,*fp2;
fp1=fopen("D:/aici/file1.txt","r");
fp2=fopen("D:/aici/file2.txt","r");
char buff[MAX],buff1[MAX];
int i=0;
while(fgets(buff,MAX,fp1)!=NULL) {
while(fgets(buff1,MAX,fp2))!=NULL){
//i++;
equal(buff,buff1);
}

rewind(fp2);
}

}

关于比较 2 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41092100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com