我在从C中的txt文件中读取未知大小的数组时遇到问题.txt文件包含以空格分隔的值,行从每个新行开始。例如:
1 2 3
4 5 6
7 8 9
我的问题是我可以"硬编码"类似于i,j = 100000并且在矩阵中读取,假设100000是足够大的数字。但这并不高效。有没有办法可以创建足够大的矩阵并将这些值扫描成2d数组?
答案 0 :(得分:1)
假设每行包含相同数量的列(应该是正确矩阵的要求),您应该预先扫描文件 - 只需读取第一行。查看它有多少列,然后创建一个大小的2D数组,可以从整个文件的实际读取中填充。
答案 1 :(得分:0)
使用链接列表。只需在文本文件输入有效时手动分配内存。我建议使用两个int类型变量来跟踪您的列数和行数,以便稍后您可以通过矩阵中的坐标轻松找到条目。
基本上你会有一维数组,但你会知道它实际上是二维数组。我之前提到的两个变量将用于您将知道矩阵的实际尺寸。
您将尝试使用坐标x和y找到的元素将位于索引处:
y * columnCount + x
要了解链接列表的工作原理,请阅读: