scanf() no funciona así.
Consume todo lo consumible en función del patrón pasado, y lo que no consume lo deja en el buffer de entrada.
Si la cadena es "15 gatos", scanf("%d",....) lee "15" y deja " gatos" (los espacios no los tiene en cuenta).     
Código C:
Ver original#include <stdio.h>
 
int main() {
 
    int a ;
    char b[500] ;
 
    return 0 ;
}