gpt4 book ai didi

c - 在 C 中读取和处理大于 0.5GB 的大型数据文件的最佳方法

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

我需要用 C 编写代码,它可以读取包含具有 double 值的大型数据矩阵的大型 csv 文件。我必须逐列阅读,并且我没有关于文件中行数和列数的先验信息。在时间和内存方面,用 C 语言处理它的最有效方法是什么?我基本上需要分别处理每一列,但如果阅读效率更高,可以按行阅读。

如果以前有人问过,请告诉我答案。谢谢

最佳答案

由于 csv 是基于行的(基于行的)并且您需要处理列,所以最好的方法是将整个文件放在内存中:询问文件大小并使用 malloc 分配该内存块。阅读第一行并确定列数“numcols”。现在重新处理文件并为每一行分配一个包含“numcols”条目的数组,这些条目将指向行中列的开头(因为每个数字可以有不同的数字位数,您可能不会假设所有列都以相同的开头线偏移)。现在您已准备好处理您的列。

如果文件不适合内存,您可以打开“numcols”附加输出文件,您可以将输入行中的列写入其中(例如,您将二进制格式的 double 值写入文件),然后倒带它们并处理每个文件,其中包含一列。如果这些输出文件适合内存,您可以将它们读入数组。 (我没有说这是有效的。)

关于c - 在 C 中读取和处理大于 0.5GB 的大型数据文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445797/

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