C 为什么它只存储两个字符而不是4个?
这是我的代码:C 为什么它只存储两个字符而不是4个?,c,C,这是我的代码: #include<stdio.h> int main() { char a[10][10]; int i,n,m,j; n=2; m=2; for(i=0;i<n;i++) for(j=0;j<m;j++) { scanf("%c",&a[i][j]);
#include<stdio.h>
int main()
{
char a[10][10];
int i,n,m,j;
n=2;
m=2;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
scanf("%c",&a[i][j]);
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%c",a[i][j]);
}
}
}
#包括
int main()
{
字符a[10][10];
int i,n,m,j;
n=2;
m=2;
对于(i=0;i,因为它们在存储,其中两个是空间。这就是为什么你看不到它们
试试这个,你就会明白
printf("[%c]",a[i][j]);
要解决这个问题,您可以这样做
scanf(" %c",&a[i][j]);
这将消耗两个字符输入之间的空白字符
来自标准:-7.21.6.2
输入空白字符(由isspace函数指定)
跳过,除非规范包含a[、c或n说明符
还有这个
由空白字符组成的指令由
读取输入直到第一个非空白字符(保留
未读),或直到无法读取更多字符。该指令永远不会
失败了
我不知道你在问什么,请清楚地更新你的问题。scanf(“%c”
@RetiredNinja感谢您的帮助,现在我清楚地理解了它。@LalitVerma.:是的,因为'
匹配它。scanf有点像解析器。很抱歉回复太晚。@LalitVerma.:我提到了标准解释的相关部分,感谢您@coderredoc澄清了这个疑问,现在我明白了。