-1

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

文件 1.txt:

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

文件2.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、读取文件等没有太多经验。

4

1 回答 1

0

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

#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];
于 2013-04-04T00:36:58.083 回答