使用令牌提取.csv文件的信息

时间:2018-04-19 15:17:23

标签: c csv token

lista.csv

我想“标记”一个名为“lista.csv”的文件,该文件包含如下列表:

  

ID(字符),温度(整数),RH(字符),时间(长整数),\ n,ID,......

等等。

我的目标是分离这些参数并对它们进行分类。换句话说,将它们从.csv文件中提取到一个struct中,其中每个组件都是一个字段(ID,temp等)。

我编写的程序是:

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

struct datos {
    char ID;  
    int temperatura;   
    char RH;  
    long int time;
};
struct datos sensor;

const char* getfield(char* linea)
{
    const char* tok;
    tok = strtok(linea, ","); 
    sensor.ID=tok;
    printf("ID sensor:%c",sensor.ID);
    tok = strtok(NULL, ",");
    sensor.temperatura=atoi(tok);
    printf("temperatura sensor:%c",sensor.temperatura);
    tok = strtok(NULL, ",");
    printf("RH sensor:%c",sensor.RH);
    sensor.RH=tok;
    tok = strtok(NULL, ",");
    sensor.time=atoi(tok);
    printf("time sensor:%c",sensor.time);
    tok = strtok(NULL, ",");
}

int main()
{
    char buf[1024];
    FILE *p = fopen("lista.csv", "r");

    while (fgets(buf, 1024, p))
    {
        char* tmp = strdup(buf);
        getfield(tmp);
        free(tmp);
    }
}

似乎我不明白char指针tok是如何工作的,因为我没有积极的结果:存储在结构中的信息不能打印在屏幕上,“?”标志出现。 谢谢。

0 个答案:

没有答案