从C中的txt文件读取未知大小的矩阵

时间:2015-10-25 19:27:44

标签: c matrix

我在从C中的txt文件中读取未知大小的数组时遇到问题.txt文件包含以空格分隔的值,行从每个新行开始。例如:

1 2 3

4 5 6

7 8 9

我的问题是我可以"硬编码"类似于i,j = 100000并且在矩阵中读取,假设100000是足够大的数字。但这并不高效。有没有办法可以创建足够大的矩阵并将这些值扫描成2d数组?

2 个答案:

答案 0 :(得分:1)

假设每行包含相同数量的列(应该是正确矩阵的要求),您应该预先扫描文件 - 只需读取第一行。查看它有多少列,然后创建一个大小的2D数组,可以从整个文件的实际读取中填充。

答案 1 :(得分:0)

使用链接列表。只需在文本文件输入有效时手动分配内存。我建议使用两个int类型变量来跟踪您的列数和行数,以便稍后您可以通过矩阵中的坐标轻松找到条目。

基本上你会有一维数组,但你会知道它实际上是二维数组。我之前提到的两个变量将用于您将知道矩阵的实际尺寸。

您将尝试使用坐标x和y找到的元素将位于索引处:

y * columnCount + x

要了解链接列表的工作原理,请阅读:

http://www.cprogramming.com/tutorial/c/lesson15.html