用C语言扫描字符数组

时间:2014-08-14 01:31:23

标签: c arrays character

我想扫描一个字符数组作为输入,如下所示,我也希望得到用户的行数(它是一个方阵)。

  

O O X
  O X O
  O O X

但是当我使用下面的程序扫描它时,它只扫描两行。

#include <stdio.h>

int main()
{
    int size,i,j;
    printf("Enter size");
    scanf("%d",&size);

    int a[size][size];

    for(i=0;i<size;i++)
        for(j=0;j<size;j++)
            scanf("%c",&a[i][j]);

}

我得到的输出是:

  

输入尺寸3
  O O X
  O X O

然后它没有要求最后一行。

2 个答案:

答案 0 :(得分:2)

请记住,这里不会跳过空格。

这会修复它,它也消耗空白:

scanf(" %c",&a[i][j]);

答案 1 :(得分:2)

抱歉,我没有足够的声誉发表评论。除了Yohannes的回答,请考虑您期望的输入类型。您使用整数数组来存储值,但是告诉scanf期望具有"%c"的字符。也许使用字符数组或取整数作为输入,并从编译器中删除类型不匹配警告。

scanf("%d",&a[i][j]);读取整数