如何使用c/c+从文件中读取1000列或更多列数据+;语言?;

如何使用c/c+从文件中读取1000列或更多列数据+;语言?;,c,file-io,readfile,multiple-columns,data-processing,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语言实现它。 有什么建议或解决办法吗 还有,如何读取或提取一些列数据?您可以逐行读取文件,然后提取循环中的数字。您可以逐行

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

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

fscanf(pFile, "%f,%f,%f,%f,%f,%f,......", &a[0], &a[1],...,a[999]);
用C语言编程时,几乎不可能做到这一点。 但是,我不知道如何用C语言实现它。 有什么建议或解决办法吗


还有,如何读取或提取一些列数据?

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

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

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


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

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


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

循环。列可以循环,就像行可以循环一样。列可以循环,就像行可以循环一样。事实上,“适当大的缓冲区”只需要足够大以容纳一个数据条目。这会带来更大的管理开销,但比比尔·盖茨(Bill Gates)所说的“32KB对每个人都足够了”更安全。事实上,“适当大的缓冲区”只需要足够大以容纳一个数据条目。这会带来更大的管理开销,但这比比尔·盖茨(Bill Gates)所说的“32KB对每个人都足够”更安全。