我有这段代码:
#include <stdio.h>
int main()
{
char vc[5]={1,1,1,1,0};
int vi[4]={0,0,0,0};
printf("Reading characters...\n");
for(int i = 0 ; i < 4 ; i++)
scanf("%c",&vc[i]);
printf("Reading numbers...\n");
for(int i = 0 ; i < 4 ; i++)
scanf("%d",&vi[i]);
for(int i = 0 ; i < 4 ; i++)
printf("%c ",vc[i]);
printf("\n");
for(int i = 0 ; i < 4 ; i++)
printf("%d ",vi[i]);
printf("\n");
return 0;
}
我只能在打印“阅读数字”之前输入2个字符,然后转到下一个for循环。为什么迭代只持续2步?它应该是4。
答案 0 :(得分:1)
这是因为%c
不会忽略空格而你可能会回击。尝试:
scanf(" %c",&vc[i]);
^
空格使scanf
忽略任何空格。