经常遇到要读入字符矩阵的题目(字符间不含空格),
之前一直是这么写的
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;
}
}
就没问题了,但还是不知道为什么。