Ne stai già parlando qui. Dovevi per forza uppare una discussione di 4 anni fa?
Comunque se proprio non ti piace la soluzione che ti hanno proposto con la scanf() e la gets() non la puoi usare (giustamente), esiste la benedetta fgets(), simile alla gets() ma generica e senza i suoi problemi di sicurezza.