用 getchar 替代 scanf 读取二维数组输入
如果您想使用 'getchar' 函数来替代 'scanf' 函数读取输入,可以按照以下方式修改您的代码:
#include <stdio.h>
#include <math.h>
int main() {
int n, m;
scanf("%d %d", &n, &m);
getchar(); // 读取换行符
int arr[99][99];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
char ch = getchar();
arr[i][j] = ch - '0';
}
getchar(); // 读取换行符
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
在这个修改后的代码中,我们使用 'getchar' 函数来逐个读取字符。首先,我们使用 'scanf' 函数读取 'n' 和 'm'。然后,我们使用 'getchar' 读取每个字符,并将其转换为数字存储到 'arr' 数组中。在每行读取完毕后,我们再次使用 'getchar' 读取换行符。最后,我们按照原样输出 'arr' 数组的内容。
注意,由于使用了 'getchar' 函数,需要在每行读取完毕后,使用 'getchar' 读取换行符。这是因为 'getchar' 会读取输入缓冲区中的一个字符,而换行符会被 'scanf' 函数留在输入缓冲区中,如果不读取换行符,它将会干扰后续的输入。
希望这个修改后的代码可以满足您的需求!如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/bIRo 著作权归作者所有。请勿转载和采集!