In teoria si potrebbe risolvere il problema, ma usare scanf() è estremamente pericoloso (vedi buffer overflow & co).
Quindi è meglio usare altre funzioni come fgets().
Per quanto riguarda il secondo problema devi usare atoi()
http://www.cplusplus.com/reference/c.../cstdlib/atoi/