c - 使用C从txt文件中获取具体数据

标签 c search text

您好,我有一个包含城市、日期和温度的文本文件。如何读取特定城市和日期的温度?例如,如果我搜索 Alingsås 2014-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";

最佳答案

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

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

关于c - 使用C从txt文件中获取具体数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23757880/

相关文章:

java - 如何在 int 数组中查找元素的索引?

html - CSS Hover 只在文本上?

c - 在已编译 C 代码的汇编 if 语句中使用 "or"助记符

c - 有没有办法定义结构算术的行为?

c# - 在 xml 文件中搜索数据的最佳方式?

html - 搜索按钮显示不正常

python - 如何从输入小部件 tkinter 中删除单个字符?

objective-c - 从 UITextView 获取换行符

c - TextOut() 和 Shift-JIS(日语字符)

c - 一个数组在另一个数组中