funzione gets () in C

Ho ancora bisogno di aiuto! Ho pensato che sia piuttosto interessante usare la funzione gets() perché è come lo scanf() cui è ansible ottenere un input con spazi bianchi. Ma ho letto in uno dei thread ( gestione dei file info studente ) che non è buono da usare perché secondo loro, è uno strumento del diavolo per creare buffer overflow (che non capisco)

Se utilizzo la funzione gets() , potrei farlo. INSERISCI IL TUO NOME: Keanu Reeves .

Se utilizzo lo scanf() , potrei farlo solo INSERISCI IL TUO NOME: Keanu

Quindi ho ascoltato il loro consiglio e ho sostituito tutto il mio codice gets() con fgets() . Il problema ora è che alcuni dei miei codici non funzionano più … ci sono funzioni diverse da gets() e fgets() che potrebbero leggere l’intera riga e che ignorano gli spazi bianchi.