【发布时间】:2020-07-31 11:50:18
【问题描述】:
我需要从命令行通过一个如下所示的 txt 文件传入一个 2D 区域(矩阵):
0 0 0 0 0
0 1 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 0 0 0
我正在使用 C 并且需要以行优先顺序使用它,所以我正在尝试这样做:
int matrix[][] = argv[2]; // it is the second command line argument passed
这不起作用,是因为它需要是一维数组吗?我是否只允许使用常规一维数组进行行优先排序? 我得到的错误是“数组类型有不完整的元素类型'int []'”
【问题讨论】:
-
您需要循环读取文件,分配给数组元素。而且你必须声明数组的大小。
-
argv[2] 是你的文件名吗?
-
argv 是一个指向 char 的指针数组 => argv[2] 是一个字符串(如果有足够的参数),而不是 int
-
当你声明一个多维数组时,你必须指定除第一个维度之外的所有维度的大小,你不能使用
[][]。 -
“从注释行到 txt 文件”是什么意思?正如斯塔克所问的,argv[2] 是具有您在问题中给出的内容的文件的名称?二维数组总是 5x5 吗?
标签: c arrays matrix command-line-arguments row-major-order