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
先把所有问津内容读道缓存,然后用strchr函数找到空格位置,再就好办了,如果不想自己编代码和我联系,haoruanjian@163.net
#5
to supersusheng:
分数已经送出,请具体讲讲您的做法:ahao@yahoo.com
特别是缓存的用法,谢谢
分数已经送出,请具体讲讲您的做法:ahao@yahoo.com
特别是缓存的用法,谢谢
#1
不知道fscanf怎么样。
#2
to marmoset:你的方法是可以的
#3
用fstream效率比fscanf高。
#4
告诉你好办法一定要给分:
先把所有问津内容读道缓存,然后用strchr函数找到空格位置,再就好办了,如果不想自己编代码和我联系,haoruanjian@163.net
先把所有问津内容读道缓存,然后用strchr函数找到空格位置,再就好办了,如果不想自己编代码和我联系,haoruanjian@163.net
#5
to supersusheng:
分数已经送出,请具体讲讲您的做法:ahao@yahoo.com
特别是缓存的用法,谢谢
分数已经送出,请具体讲讲您的做法:ahao@yahoo.com
特别是缓存的用法,谢谢