我有以下解析 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/