Originariamente inviato da ramy89
La parola chiave FILE indica il tipo di variabile,un puntatore a file se aperto correttamente indica l' indirizzo di memoria del file sul disco (se non erro),
Giusto per puntualizzare: punta ad una struttura in cui la libreria standard C memorizza diverse informazioni relative allo stato del file (posizione al suo interno, handle del sistema al file, eccetera). Tuttavia, è una struttura "opaca", nel senso che non la si può modificare direttamente, ma solo tramite le funzioni di IO. Si può dire che ciascun FILE * identifica un file aperto, e questo basta.
Originariamente inviato da gip1975
grazie la parola FILE è una parola chiave ok capito
ho modificato il mio codice che non stampava su file da
codice:
if (num=NULL) printf ("errore");
a
codice:
if (num==NULL) printf("errore");
e adesso salva i dati su file perchè?
la riga di codice, nel primo listato,
= è l'operatore di assegnamento, per cui prima della modifica assegnavi a num il valore NULL, e per questo tutte le chiamate successive alle funzioni di IO fallivano (passavi NULL invece del FILE * che era stato restituito da fopen).
codice:
FILE *num, *fopen()
l'asterisco e la funzione (correggimi se il termine è errato) fopen() non serve giusto?
L'asterisco nella dichiarazione di num serve, mentre per la chiamata ad fopen no.