c - 用 c 解析 csv

标签 c

我有以下解析 csv 文件的方法,在我更改之前它工作正常

(getfield(tmp, 12));

(getfield(tmp, ver));

函数声明有问题吗?

代码如下:

const char* getfield(char* line, int num)
{
    const char* tok;
    for (tok = strtok(line, ";");
            tok && *tok;
            tok = strtok(NULL, ";\n"))
    {
        if (!--num)
            return tok;
    }
    return NULL;
}
int main() {
    double frame_index[40][300];
    int horz;
    FILE* fp = fopen("output.txt", "r");
    char line[1024];

        for (int ver; ver<20;ver++) {
            while (fgets(line, 1024, fp))  {
                char* tmp = strdup(line);
                frame_index[ver][horz] = atof(getfield(tmp, ver));  
                // works if "ver" was explicitly defined
                printf("AA %f\n", frame_index[ver][horz]);
                free(tmp);
                horz++;     
        }   
         rewind(fp);
    }
}

最佳答案

您永远不会初始化变量 ver。例如你可能想改变

for (int ver; ver<20;ver++)

for (int ver=0; ver<20;ver++)

更新horz..

关于c - 用 c 解析 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36037200/

相关文章:

c - 这个二进制搜索实现中的无限循环?

c - 静态变量忽略重新分配

C++ 将参数发送到 exe 文件

将字符串数组复制到 C 中的另一个数组中

c - 使用结构体组织输入 - C 编程

C Makefile,存在目标时出现 "No target"的奇怪错误

c - 在 mingw 中,我在哪里可以找到 Windows 的 C malloc/free 实现源代码?

c++ - 我们如何确保缓存以减少 SQLite 数据库的文件系统写入周期

c - Arduino 作为 I2C 从设备与 RPi 通信

c - 我的 strlcpy 版本