一个包含 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/