why does scanf require a second input in the first iteration? it messes up all the other iterations.Code:~$ cat main.c
#include <stdio.h>
int main()
{
while(1)
{
int input, num;
printf("type a number: ");
scanf("%d\n%n", &input, &num);
printf(" %d ", num);
}
return 0;
}
~$ gcc -Wall -Werror main.c
~$ ./a.out
type a number: 2
2
2 type a number: 2
2 type a number: 2
2 type a number: 23
2 type a number: 23
3 type a number: 23
3 type a number: 23
3 type a number: 2
3 type a number: 2
2 type a number: 2
2 type a number: 2
2 type a number: 23
2 type a number: 2
3 type a number: 23
2 type a number: 2
3 type a number: 2
2 type a number: 234
2 type a number: 2
4 type a number: 234
2 type a number: 2
4 type a number: 1
2 type a number: 1
2 type a number:
~$
the newline in the scanf call is to eat up the newline so that other inputs will be ok.