如何连续输入两个字符作为输入?

时间:2015-10-17 12:34:11

标签: c character scanf

我必须输入:

A B
C D
E A

所以我写了这样的代码:

char ch[50][2];    
for(i=0;i<3;i++)
{
    scanf("%c%c",&ch[i][0],&ch[i][1]);
}

但它只接受两个输入,然后,我得到运行时错误。有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:1)

这是我经常使用的方法:将字符读为字符串。

for(i=0;i<3;i++)
{
    char buf1[2], buf2[2];
    scanf("%1s%1s",buf1,buf2);
    ch[i][0]=buf1[0];
    ch[i][1]=buf2[0];
}

答案 1 :(得分:1)

尝试

profile

这将转义缓冲区中留下的换行符scanf(" %c %c",&ch[i][0],&ch[i][1]);

答案 2 :(得分:0)

尝试使用scanf

中的字符之间的空格
for(i=0;i<3;i++)
{
    scanf(" %c %c", &ch[i][0], &ch[i][1]);
}

这将导致scanf忽略字符之间的空格。需要一个额外的空格来忽略用户通过按Enter键插入的新行字符。