In realtà per "mangiare" il whitespace (newline incluso) dovrebbe bastare
codice:
scanf("%d ", &N);
(nota lo spazio dopo il %d)
Buono a sapersi. Ignoravo completamente il significato dei whitespace al termine della stringa di formattazione della scanf.
Ho sempre usato la direttiva di conversione %*c per mangiare la robaccia lasciata nell'stdin.
Experience is what you get when you don’t get what you want