【发布时间】:2017-11-15 08:34:33
【问题描述】:
当我出于某种原因尝试输入 2D char 数组时,我得到了奇怪的结果。过去我一直采用这种方式获取整数二维数组,但不知何故,这种方法不适用于 char 数组。
#include <stdio.h>
int main()
{
int i,j,n;
scanf("%d",&n);
char a[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%c",&a[i][j]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%c",a[i][j]);
}
return 0;
}
例外输入:
3
a b c
d e f
g h 我
预期输出:
a b c
d e f
g h 我
会发生什么:
3
a b c
d e f
(输入突然停止)
输出:
a b c
d
【问题讨论】:
-
您能否详细说明“不起作用”部分? 如何不起作用?你的输入是什么?你的预期输出是什么?实际输出是多少?请read about how to ask good questions。也请learn how to debug your programs.
-
你输入了什么,你得到了什么,这与你的预期有何不同?
-
你可能想要
scanf("%c\n",&a[i][j])(最后是'\n') -
@BarmakShemirani 最好在格式之前添加一个空格。否则最后的
scanf调用将阻塞,直到输入非空格字符。 -
@某个程序员老兄,对。我认为它根本不需要
\n,只需" %c"