使用C从txt文件中获取特定数据

时间:2014-05-20 10:56:37

标签: c search text

您好我有一个包含城市,日期和温度的文本文件。我怎样才能从特定的城市和白天读取温度?例如,如果我搜索Alingsås2014-05-14,我需要得到13.81,11.59和13.81。我坚持的部分是在我打开文件并为城市和日期放置变量之后。信息存储在文本文件中,如下所示:

Alingsås;
2014-05-14;
13.81;
11.59;
13.81;
2014-05-15;
8.89;
7.99;
9.15;
2014-05-16;
6.2;
5.07;
6.58;
2014-05-17;
7.91;
5.55;
7.91;
2014-05-18;
7.76;
5.95;
7.76;
2014-05-19;
7.95;
6.91;
9.72;
2014-05-20;
18.45;
12.92;
18.45;
Arboka;
2014-05-14;
9.55;
4.53;
10.66;
2014-05-15;
6.33;
1.5;
9.37;
2014-05-16;
8.85;
3.4;
12.08;
2014-05-17;
14.01;
4.8;
15.4;
2014-05-18;
14.16;
6.35;
17.23;
2014-05-19;
21.39;
14.57;
21.39;
2014-05-20;
23.34;
14.82;
23.34;

我的代码到目前为止

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>




int main(void)
{
    FILE * fp;
  char c;

  // open file

  fp =fopen("C:\\Users\\Karl\\Desktop\\info.txt", "r");

  if (fp != NULL)
  {      char city[10] = "Ålingsås";

         int temp1;
     int temp2;

         int temp3;
         char date[13] = "2014-05-14";

1 个答案:

答案 0 :(得分:2)

一种解决方案是创建一个包含城市名称的结构,以及指向另一个结构的指针,该结构将是一个&#34;数组&#34; (在堆上动态分配)以及每个条目包含数据和三个温度的位置。

然后从文件中一次读取一行,修剪输入(删除前导和尾随空格,如果有的话)并创建上述结构。如果当前行以数字开头,则表示日期并再读取三行温度并填写结构。如果当前行没有以数字开头,那么您将拥有一个新城市,并创建一个新的城市结构。