从C C ++中的文件中读取矩阵

只是想知道,对于存储在文件中的矩阵,它是什么,即文件中的每一行是矩阵的一行,其中元素由空格分隔,我如何预先确定矩阵的大小,然后创建一个相同大小的数组并在C和C ++中读入数组? 如果您有一些代码示例,那将不胜感激!

感谢致敬!

像这样的东西。 你需要包含vector,sstream和string。

无需事先找出矢量的大小。

std::vector readRow(std::string row) { std::vector retval; std::istringstream is(row); int num; while (is >> num) retval.push_back(num); return retval; } std::vector > readVector(std::istream &is) { std::string line; std::vector > retval; while (std::getline(is, line)) retval.push_back(readRow(line)); return retval; } 

在C中,您可以使用fgets一次读取一行,并使用strtok或类似来处理行和atof或sscanf来读取数字。 可以处理第一行以确定矩阵宽度并分配内存,然后重新处理以插入第一行。 如果高度可能不同,那么您需要动态分配内存,或者读取整个文件计数行然后重新处理它。

读取第一行,计算字段,然后使用fseek()返回文件的开头。