DOMANDA Dubbio File C

Pubblicità

saro1995

Nuovo Utente
Messaggi
82
Reazioni
3
Punteggio
27
Ciao ragazzi come state? Spero tutto bene!
Da un bel pò che programmo in C ma solo adesso mi è sorto un dubbio riguardo i file e i relativi caricamenti su liste ecc... Il mio dubbio è questo: Se per esempio su file ho dati dati caratterizzati da numeri interi o stringhe è giusto se prendo le stringhe composte da più parole con fgets() e gli interi con fscanf()? Ho questo dubbio perchè tempo fa un mio collega mi disse che non è corretto usare fgets e fscanf insieme. Confermate? Se confermate ditemi come dovrei comportarmi in casi come questi, cioè con file composti da stringhe e interi con relativi esempi se è possibile. Grazie
 
fscanf() lascia il new line nel buffer, e se è seguito da fgets() questo leggerebbe il new line.
A parte questo, fgets() è consigliato per la sicurezza: puoi fare controlli sul contenuto, e quindi validarlo (sempre qui verifichi se è un intero o no), inoltre puoi accertarti che non venga causato un buffer overflow.

Ps. Scusa se sono breve, ma sono da smartphone. Appena mi sarà possibile ti mostrerò anche degli esempi, se non sarò anticipato da altri.
Magari, nel caso, vado più "low level".
 
Te lo ha detto perché fgets() non salta i newline, li estrae, li inserisce nel buffer e termina la lettura.

Si può notare come da questo esempio, che funziona apparentemente bene, che se si inserisce un newline tra 1.8 e “c’era una volta” la stringa che viene letta non è in alcun modo utile (tralascia l’uso di gets, è perché wandbox non gestisce i file...)
 
Pubblicità
Pubblicità
Indietro
Top