我必须输入:
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]);
}
但它只接受两个输入,然后,我得到运行时错误。有人可以帮帮我吗?
答案 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键插入的新行字符。