我想逐行扫描二维矩阵中的整数,即在“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]);
整数可能类似吗?
如果您不知道列数或行数,则可以执行以下操作:
将每一行逐一读入一个字符串。然后在空格字符上拆分当前行(使用 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, " ");
}
}