关于C++读入字符矩阵
  • 板块灌水区
  • 楼主Skeleton_Huo
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/9/12 16:59
  • 上次更新2023/10/27 11:49:19
查看原帖
关于C++读入字符矩阵
324632
Skeleton_Huo楼主2022/9/12 16:59

经常遇到要读入字符矩阵的题目(字符间不含空格), 之前一直是这么写的

for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
        char ch = getchar();
        while (ch == '\n' || ch == ' ') ch = getchar();
        g[i][j] = ch;
    }
}

在本地和洛谷运行也都是对的,但在校oj(等其他评测环境)上会出一些奇怪的问题。 蒟蒻习惯用快读快写,一般不用cin或scanf(),且scanf也会出现类似的问题。

想知道我之前的写法的问题在哪里,若有更好的手动读入方法求告知。

顺便说一下,之前的写法改成这样

for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
        char ch = getchar();
        // 该题目中矩阵只能出现#或.
        while (ch != '#' && ch != '.') ch = getchar();
        g[i][j] = ch;
    }
}

就没问题了,但还是不知道为什么。

2022/9/12 16:59
加载中...