扫描矩阵一次一行

时间:2013-08-27 16:39:49

标签: c matrix scanf

我想扫描一个2-D矩阵的整数行,即'C'中一次一行

例如:
如果矩阵是:

1 2 3  
4 5 6  
7 8 9  

然后应该只使用3次扫描,第一次输入

1 2 3  

立刻等等其他行。

对于角色我们可以使用类似的东西:

char mat[10][10];
scanf("%s[^\n]%*c", mat[i]);   

整数可能类似吗?

1 个答案:

答案 0 :(得分:0)

如果您不知道列数或行数,则可以执行以下操作:

逐行读取每一行到一个字符串。然后在空格字符上分割当前行(使用例如strtok),并使用例如strtol将字符串解析为整数。

喜欢这个伪代码

while (fgets(line))
{
    number_string = strtok(line, " ");
    while (number_string != NULL)
    {
        mat[i++][j++] = strtol(number_string, NULL, 10);
        number_string = strtok(NULL, " ");
    }
}