为什么按规定输入字符,但是输出却不对呢

#include

char mo[6][6];

int main()
{
using namespace std;
int n;
cin >> n;
for (int i = 1;i <= n; ++i)
for (int j = 1;j <= n; ++j)
scanf("%c", &mo[i][j]);

for (int i = 1;i <= n; ++i)
for (int j = 1;j <= n; ++j)
printf("%c", mo[i][j]);

return 0;

}

scanf会读取遗留在缓冲区的回车 如下:
getchar(); 会读取回车 防止scanf读取

 #include <stdio.h>
#include<iostream>
using namespace std;
char mo[6][6];
int main()
{
    using namespace std;
    int n;
    cin >> n;
    getchar();
    for (int i = 1;i <= n; ++i)
        for (int j = 1;j <= n; ++j)
        {
            scanf("%c", &mo[i][j]);
            getchar();
        }
    for (int i = 1;i <= n; ++i)
    for (int j = 1;j <= n; ++j)
    printf("%c", mo[i][j]);

    return 0;
}