如何快速读取文本文件的内容?

时间:2022-10-30 20:30:27
现有一个文本文件里面有多行信息,每行内容如下:
string1_1 string1_2 string1_3
string2_1 string2_2 string2_3
......
stringn_1 stringn_2 stringn_3
(每行之中的字符串以空格相隔)

每行信息对应程序中的一个结构:
struct
{
char* str1;
char* str2;
char* str3;
} somestruct

假定已经有了一个足够大小的somestruct型数组a[n];和该文件的文件指针pf;
希望把文件中的内容读到该数组中去,如何做效率最高(因为n非常大)?

希望能给出runtime库的实现方法。

我现在的做法是先fgets(temp_line, MAX_LEN_LENGTH, fp)一行;
然后用strtok寻找每行中的单个字符串;
然后用strcpy把找出来的字符串拷贝到数组元素中的相应成分上。

但是我觉得上面的方法比较笨拙,想请教有没有效率更好的写法,
有没有现成的库函数能直接过滤文本文件中的空白(whitespace)而直接取出一个字符串?

5 个解决方案

#1


不知道fscanf怎么样。

#2


to marmoset:你的方法是可以的

#3


用fstream效率比fscanf高。

#4


告诉你好办法一定要给分:
    先把所有问津内容读道缓存,然后用strchr函数找到空格位置,再就好办了,如果不想自己编代码和我联系,haoruanjian@163.net

#5


to supersusheng:
分数已经送出,请具体讲讲您的做法:ahao@yahoo.com
特别是缓存的用法,谢谢

#1


不知道fscanf怎么样。

#2


to marmoset:你的方法是可以的

#3


用fstream效率比fscanf高。

#4


告诉你好办法一定要给分:
    先把所有问津内容读道缓存,然后用strchr函数找到空格位置,再就好办了,如果不想自己编代码和我联系,haoruanjian@163.net

#5


to supersusheng:
分数已经送出,请具体讲讲您的做法:ahao@yahoo.com
特别是缓存的用法,谢谢