【发布时间】:2020-09-21 00:42:46
【问题描述】:
{"2014-02-13T06:20:00": "3.0", "2014-02-13T13:50:00": "7.0", "2014-02-13T06:00:00": "2", "2014-02-13T03:00:00": "3", "2014-02-13T13:00:00": "6", "2014-02-13T18:50:00": "4.0", "2014-02-13T13:20:00": "6.0", "2014-02-13T15:00:00": "6", "2014-02-13T08:50:00": "4.0", "2014-02-13T21:50:00": "4.0", "2014-02-13T08:00:00": "3", "2014-02-13T07:50:00": "3.0", "2014-02-13T08:20:00": "4.0", "2014-02-13T21:20:00": "3.0", "2014-02-13T11:50:00": "6.0", "2014-02-13T11:20:00": "6.0", "2014-02-13T17:50:00": "5.0", "2014-02-13T11:00:00": "6", "2014-02-13T05:50:00": "2.0", "2014-02-13T20:50:00": "3.0", "2014-02-13T20:20:00": "4.0", "2014-02-13T16:00:00": "6", "2014-02-13T23:50:00": "2.0", "2014-02-13T21:00:00": "3", "2014-02-13T07:20:00": "3.0", "2014-02-13T03:20:00": "3.0", "2014-02-13T07:00:00": "3", "2014-02-13T15:50:00": "6.0", "2014-02-13T03:50:00": "2.0", "2014-02-13T04:00:00": "2", "2014-02-13T12:00:00": "6", "2014-02-13T04:20:00": "2.0", "2014-02-13T12:20:00": "6.0", "2014-02-13T12:50:00": "6.0", "2014-02-13T22:50:00": "3.0", "2014-02-13T09:00:00": "4", "2014-02-13T09:20:00": "4.0", "2014-02-13T09:50:00": "4.0", "2014-02-13T18:00:00": "5", "2014-02-13T05:20:00": "2.0", "2014-02-13T15:20:00": "6.0", "2014-02-13T00:50:00": "4.0", "2014-02-13T14:50:00": "7.0", "2014-02-13T00:00:00": "4", "2014-02-13T00:20:00": "4.0", "2014-02-13T06:50:00": "3.0", "2014-02-13T22:00:00": "4", "2014-02-13T18:20:00": "5.0", "2014-02-13T02:50:00": "3.0", "2014-02-13T02:20:00": "3.0", "2014-02-13T04:50:00": "2.0", "2014-02-13T02:00:00": "3", "2014-02-13T23:00:00": "3", "2014-02-13T16:50:00": "5.0", "2014-02-13T19:50:00": "4.0", "2014-02-13T19:20:00": "4.0", "2014-02-13T05:00:00": "2", "2014-02-13T19:00:00": "4", "2014-02-13T23:20:00": "3.0", "2014-02-13T14:20:00": "7.0", "2014-02-13T10:20:00": "5.0", "2014-02-13T10:00:00": "4", "2014-02-13T10:50:00": "5.0", "2014-02-13T17:00:00": "5", "2014-02-13T01:00:00": "4", "2014-02-13T17:20:00": "5.0", "2014-02-13T01:20:00": "4.0", "2014-02-13T01:50:00": "4.0", "2014-02-13T22:20:00": "3.0", "2014-02-13T16:20:00 :"6.0"}
我有这段文字,它代表(例如): 日期 -> 2014-02-13T06:20:00 湿度率 -> 4.0
起初,我想有一个输出日期\n湿度率\n日期\n湿度率等。我尝试使用strtok,但我做不了太多。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LINESIZE 128
int main()
{
FILE *fp = fopen("tempm.txt", "r");
char line[LINESIZE];
char *value;
while(fgets(line, sizeof(line), fp))
{
value = strtok(line, "\" \":");
printf("\n%s", value);
}
return 0;
}
这是我目前写的代码。
【问题讨论】:
-
从您发布的内容看来,您可以在 1 行中获得所有内容。对吗?
-
既然看起来像 JSON 数据,为什么不试试 JSON 解析器呢?如果您真的想使用
strtok,请查看如何正确使用它。第一次调用strtok时,您将缓冲区传递给解析。如果要继续解析缓冲区,请使用NULL调用strtok而不是新缓冲区。 -
您必须知道您不能使用
strtok进行嵌套解析。 IE。您只能在一组数据后拆分输入,而不是在该组内。此外,为分隔符传递的字符串并不表示子字符串,而是一组充当分隔符的单个字符。正如 Cheatah 已经建议的那样,使用一些 JSON 解析器会更容易。 -
@Gerhard - 您必须知道您不能使用 strtok 进行嵌套解析。 这不是真的。对于可重复的、明确定义的输入,例如给定的内容,可以有效地使用对 strtok 的嵌套调用。
-
strtok有点原始,如果可能我会避免它。