我想将文件放入数组中。有没有更有效的方法呢?我正在使用fgetc来获取文本文件的单个字符。这是我到目前为止所拥有的。
while((temp_airports[i] = fgetc(airports)) != EOF) {
c=temp_airports[i];
printf("%c",temp_airports[i]);
i++;
}
是否有更有效或直接的方法将文本文件的内容放入数组中?我认为fgets可以工作,但我不知道文件的大小。
答案 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格式输入,将提供基本的解析功能。