c - 如何使用c/c++语言从文件中读取1000列以上的数据?

标签 c file-io readfile multiple-columns data-processing

一个包含 10000 行和 1000 列的数据文件。我想将整行保存到一个数组或将每一列保存到一个变体。

C中有一个标准函数fscanf,如果使用这个函数,我需要写1000次格式。

fscanf(pFile, "%f,%f,%f,%f,%f,%f,......", &a[0], &a[1],...,a[999]);

用C编程几乎不可能这样。 但是,我不知道用C语言来实现它。 有什么建议或解决方案吗?

以及,如何读取或提取某些列数据?

最佳答案

使用 fgets() 将文件逐行读取到一个适当大的缓冲区中。不要害怕使用 32 KB 或其他大小的缓冲区,只是为了确保所有字段都适合。

然后在循环中解析该行,可能使用 strtok() 或只是普通的旧 strtod()。请注意,后者返回一个指向第一个不被视为数字的字符的指针;这是您将继续解析下一个数字的地方。也许您需要添加一个内部循环来“吃掉”空格(或您拥有的任何分隔符)。

关于c - 如何使用c/c++语言从文件中读取1000列以上的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14210712/

相关文章:

编译C并将ASM汇编成机器码

c++ - 我不断收到 'std::invalid_argument' what() : stoi exception thrown for seemingly no reason?

c - 返回文件*

linux - 从 x86 中的特定位置读取文件

c - 从文件中逐行读取

c - C 中的 2 D 字符数组,其中每个值都是 C 字符串

更改函数内的原始指针

c - 动态分配矩阵的函数

c - 解释DWORD在串行通信中的使用

java - 读取文件和分割信息