-1

我想逐行扫描二维矩阵中的整数,即在“C”中一次一行

例如:
如果矩阵是:

1 2 3  
4 5 6  
7 8 9  

那么应该只使用 3 次 scanf 并且第一次输入是

1 2 3  

一次等其他行。

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

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

整数可能类似吗?

4

1 回答 1

0

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

将每一行逐一读入一个字符串。然后在空格字符上拆分当前行(使用 eg strtok),并使用 egstrtol将字符串解析为整数。

像这个伪代码

while (fgets(line))
{
    number_string = strtok(line, " ");
    while (number_string != NULL)
    {
        mat[i++][j++] = strtol(number_string, NULL, 10);
        number_string = strtok(NULL, " ");
    }
}
于 2013-08-27T16:55:37.117 回答