有没有更有效的方法将文件解析为数组?

时间:2012-03-16 15:30:28

标签: c

我想将文件放入数组中。有没有更有效的方法呢?我正在使用fgetc来获取文本文件的单个字符。这是我到目前为止所拥有的。

while((temp_airports[i] = fgetc(airports)) != EOF) {
      c=temp_airports[i];
      printf("%c",temp_airports[i]);
      i++;
    }

是否有更有效或直接的方法将文本文件的内容放入数组中?我认为fgets可以工作,但我不知道文件的大小。

3 个答案:

答案 0 :(得分:4)

一次使用fread函数从文件中的char缓冲区

答案 1 :(得分:1)

首先你需要知道文件大小,NilObject的代码:

#include <sys/stat.h>

off_t fsize(const char *filename) {
    struct stat st; 

    if (stat(filename, &st) == 0)
        return st.st_size;

    return -1; 
}

然后分配一个具有该大小的缓冲区并执行fread。

答案 2 :(得分:0)

作为一般答案,您可以使用fscanf,如果以ASCII格式输入,将提供基本的解析功能。