non riscivo a farlo funazionare nemmeno con fgets
fgets() richiede un buffer di appoggio, da cui poi estrarre i dati richiesti; è un pò più complicato ma almeno sai quello che sta succedendo.
n Visual Studio ci sono tutte le menate di scanf_s e tutte quelle funzioni di sicurezza implementate da MS.
Se usi fgets(), che è sicura, non hai bisogno di altre "menate" come le chiami tu.
Quindi, ove possibile, preferirei utilizzare scanf anche su Linux, tanto per abituarmi ad usarlo e incappare negli errori tipici dei neofiti in modo da capire bene.
L'errore tipico è proprio quello di utilizzare scanf()!
che qunado capisci a fondo il c potenzialmente non hai limiti all'apprendimento di qualsiasi cosa che centri con la programmazione
Non sono d'accordo; basti solo pensare alla programmazione ad oggetti...
Con questi presupposti, cerco di non limitarmi a dire "vabbé uso fgets"
Nessuno ha scritto "vabbè usa fgets": ti è stato consigliato di non utilizzare scanf(), che è una funzione non sicura (infatti mamma ms ne implementa un'alternativa sicura) a favore di fgets() che è sicura. La differenza fra scanf() e fgets() è che in quest'ultima specifichi la dimensione massima del buffer di lettura, evitando così il rischio di buffer overflow (prova a fare qualche ricerca su internet, o anche in questo stesso forum, per capire bene e non affidarti a dicerie).