【问题标题】:Text file to array in C文本文件到 C 中的数组
【发布时间】:2014-04-17 22:47:54
【问题描述】:

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

文件格式如下:

暗淡:8 15 流行音乐:2 DIM_POP:40 视察:1 前线:1 克:50 50 移动:1 NUM_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);

有些东西只是为了测试。关于如何解决这个问题的任何提示?

【问题讨论】:

    标签: c arrays file text


    【解决方案1】:

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

    在虚拟地址空间中拥有所有数据后,您可以检查它以确定您实际需要多少存储空间,分配它,然后将所有内容解析到分配的存储空间中,知道所有内容都适合.这消除了另一个大问题。

    实际解析非常简单,只需遍历 NAME: numbers 组合,逐个解析它们,直到你到达终点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多