Не могу понять как работает scanf(). Си.
char str1[5] = {0};
int a;
scanf("%5s", str1);
scanf("%d", &a);
почему если ввести шесть символов при первом вызове scanf(), то шестой символ лезет в переменную "a".
char str1[5] = {0};
char str2[] = {0};
scanf("%5s", str1);
scanf("%s", str2);
если делать так, то scanf() во второй массив запихивает все, что не влезло в первый массив.
как сделать так, что бы при втором вызове scanf не пихал в переменную или массив символы, которые не влезли в первый массив, а заново считывал символы с клавиатуры?