У меня есть этот код:Какое объяснение этого поведения scanf?
#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 символа перед печатью «номера для чтения» и переходит к следующему за цикл. Почему итерация занимает всего 2 шага? Это должно быть 4.
Вы вводите ENTER между вводами символов. Это создает новую строку. Вы попросили 'scanf' читать символы, а новая строка - символ (в частности' '\ n''). –
Хорошо, что объясняет многое. Благодаря! – conectionist