Code:
~$ cat main.c
#include <stdio.h>

int main()
{
        while(1)
        {
                int input, num;
                printf("type a number: ");
                scanf("&#37;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:
~$
why does scanf require a second input in the first iteration? it messes up all the other iterations.

the newline in the scanf call is to eat up the newline so that other inputs will be ok.