C 基质形成

C 基质形成,c,arrays,loops,C,Arrays,Loops,给定数组和元素的列数,你们认为什么是声明行数的好方法 #define MAX_ROW 10 fscanf(in,"%d",&col); // read first input in file as number of columns for(i = 0; i < MAX_ROW; i++){ // max row is a constant for(j = 0; j < col; j++){ // col is the va

给定数组和元素的列数,你们认为什么是声明行数的好方法

    #define MAX_ROW 10

    fscanf(in,"%d",&col); // read first input in file as number of columns

    for(i = 0; i < MAX_ROW; i++){ // max row is a constant
            for(j = 0; j < col; j++){ // col is the variable of the given columns
                    fscanf(in,"%d",&matrix[i][j]); //just reading out the elements
                    }
    }
#定义第10行的最大值
fscanf(在“%d”中,&col);//以列数形式读取文件中的第一个输入
对于(i=0;i

当我这样做的时候,它肯定知道应该去哪个元素。但考虑到数组的其余部分都是空的,当我打印出来时,数组的其余部分实际上被随机数据填满了。我想在输入文件的末尾读取NULL。但是我不知道如何在这里集成它。

如果使用
memset
,您可以将数组初始化为
MAX\u INT
,这样您就可以
如果(row==MAX\u INT)中断。这意味着您必须检查用户是否输入了
MAX_INT
,然后再对其进行处理。备选方案:第一行数据根据元素数量进行评估。现在知道列宽了。然后读线,直到出现不符合要求的线。现在已经知道了行数。在读取每行时动态调整行数,或者在已知MAX_ROW和MAX_COL的情况下重新读取文件。不一致行是什么意思?对于memset,如果在文件读取期间使用memset,它不会仍然填充“空”吗包含不必要数据的元素空间?与第一行元素数不相同的行(或EOF条件到达)