2013-01-08 69 views
1

具有10000行和1000列的数据文件。我想将整行保存到一个数组或每个列到一个变体。如何使用c/C++语言从文件读取1000或更多列数据?

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

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

它在C. 编程时几乎是不可能这样的,但我不知道用C语言来实现它。 任何建议或解决方案?

而且,如何读取或提取一些列数据?

+4

循环。列可以循环,就像行可以一样。 – 2013-01-08 08:11:31

回答

1

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

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

+0

感谢您的建议。 – Dong

+0

实际上,“适当大的缓冲区”只需要足够大以容纳*一个单一的数据项*。这样做会导致更大的管理费用,但比比尔盖茨更安全 - “每个人肯定有32 KB就足够了”。 – usr2564301

0

您可以逐行读取文件,然后在循环中提取数字。

相关问题