文本文件到C中的数组



我正在尝试读取文本文件并将结果保存在数组中。

文件的格式如下:

昏暗:8 15POPS:2DIM_POP:40即:1FRONTEIRA:1K: 50 50移动:1NUM_ITER:50

我试图将每个值保存为int,但我很难将所有值分隔开。我现在的代码是:

int dim_linha = 0, dim_col = 0, pops = 0, dim_pop = 0, viz = 0, fronteira = 0, k1 = 0, k2 = 0, move = 0, num_iter = 0;
char dimL;
FILE *config;
char buf[100];
char* cfg[90];

//fread(buf, sizeof(char), sizeof(cfg), config);
while (fgets(buf, sizeof(buf), config) != NULL){
    char *dimL = strtok(buf, "n");
}
fclose(config);

有些东西只是用来测试的。关于如何解决这个问题,有什么建议吗?

我建议使用mmap()将整个文件映射到内存中,然后将整个文件作为一个大字符串进行检查。通过这种方式,您已经消除了与固定大小缓冲区相关的所有问题。

一旦你的虚拟地址空间中有了所有的数据,你就可以对其进行检查,以确定你实际需要多少存储,分配它,然后将所有的数据解析到分配的存储中,知道所有的数据都适合。这消除了另一大问题。

实际的解析非常简单,只需一个接一个地对NAME: numbers组合进行迭代解析,直到到达最后。

相关内容

  • 没有找到相关文章

最新更新