如果您想使用 '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' 函数留在输入缓冲区中,如果不读取换行符,它将会干扰后续的输入。

希望这个修改后的代码可以满足您的需求!如果还有其他问题,请随时提问。

用 getchar 替代 scanf 读取二维数组输入

原文地址: https://www.cveoy.top/t/topic/bIRo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录