gpt4 book ai didi

c - 读取大数据时有没有比 fscanf 更快的方法

转载 作者:太空宇宙 更新时间:2023-11-04 03:35:13 25 4
gpt4 key购买 nike

我正在努力处理大量结构化数据。我有一个包含姓名和门号的文件。我使用 fscanf 读取名称和数字,然后使用 fprintf 将它们存储在较小的文件中。

while ( fscanf(file, "%s %d", &people[i].name, &people[i].doorNum) > 0 ) {      
...
}

人是一个结构数组

typedef struct {                                        
char* name;
int doorNum;
}person;

我要读取的文件是 15 GB。我的目标是阅读它们并将其拆分为 1GB 的文件。它完美地工作,但需要超过 10 分钟。我该如何改进这些读写数据的过程呢?

最佳答案

你没有告诉我们你所说的“ split ”是什么意思。

可能将字段读取为字符串和整数是无用的(也许单个字符串或两个单独的字符串就足够了)。

编写自己的扫描函数,内置要匹配的模式知识,这样效率肯定会更高。即使编写自己的整数转换也应该更好。

关于c - 读取大数据时有没有比 fscanf 更快的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33282851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com