C编程:读取文件并根据找到的数据搜索第二个文件

C编程:读取文件并根据找到的数据搜索第二个文件,c,regex,file,fgets,scanf,C,Regex,File,Fgets,Scanf,我有两个文件,file1.txt和file2.txt: file1.txt: 1234:James Smith:100:110 1111:Steve Jones:150:130 4321:Bob Wilson:110:140 file2.txt 100;Area 1;0.00 110;Area 2;3.00 120;Area 3;4.75 130;Area 4;5.95 140;Area 5;10.00 150;Area 6;12.00 我想做的是逐行读取file1.txt,并将一些信息记录

我有两个文件,file1.txt和file2.txt:

file1.txt:

1234:James Smith:100:110
1111:Steve Jones:150:130
4321:Bob Wilson:110:140
file2.txt

100;Area 1;0.00
110;Area 2;3.00
120;Area 3;4.75
130;Area 4;5.95
140;Area 5;10.00
150;Area 6;12.00
我想做的是逐行读取file1.txt,并将一些信息记录到file3.txt(输出文件)中,例如字段1(数字)和字段2(名称)。为了测试我是否可以检索这些,我使用了:

while (fscanf(file1, "%[^:]:%[^:]:%d:%d", number, name, &on, &off) == 4)
{
  printf("Name contains: %s", name);
}
正如所料,这检索了所有“名称”(字段2)值,并将它们显示在屏幕上。 我现在想使用存储在“on”和“off”中的数据从file2.txt中检索其他信息。如上所示,file1.txt字段3和4与file2.txt中的字段1匹配。我在最终输出文件中看到的是:

1234 James Smith Area 1 to Area 2 3.00
1111 Steve Jones Area 6 to Area 4 6.05
4321 Bob Wilson Area 2 to Area 5 7.00
我不知道如何逐行读取file1.txt,同时执行file2.txt的“检查”并输出。我还需要一个简单的减法计算在那里以及


任何帮助都将不胜感激。我对fscanf、fgets、读取文件等方面没有太多经验。

这是所需结构定义的一个示例-:

#define MAX_LINES 1000

struct rec1 
{
   int n;
   char name[30];
   int area1;
   int area2;
};

struct rec1 rec1_list[MAX_LINES];

struct rec2
{
   int area;
   char desc[20];
   int rating;
};

struct rec2 rec2_list[MAX_LINES];

您已成功正确读取第一个文件。在寻求帮助之前,你应该先尝试一下。我完全可以使用与上面相同的格式阅读第二个文件。只是我不完全确定如何读取file1中的第一行,执行比较,做一些计算,输出到输出文件,然后读取第二行,等等…为file1记录和file2记录定义一个结构数组。对于每行读取,将变量存储在数组的下一个结构中。我假设你的数据文件不大。然后循环遍历结构的file1数组。对于每个记录,通过file2结构循环查找任何匹配项。