DOMANDA Posso usare la fscanf per leggere file in modalità non tradotta?

Pubblicità

ilfe98

Utente Èlite
Messaggi
3,083
Reazioni
1,317
Punteggio
134
SAlve,stavo vedendo un esercizio sui file aperti in modalità non tradotta e ad un certo punto è stata usata la fscanf in questo modo:
C:
int num
          //  num = fscanf(fin,"%hd", &num);
           // fread(&num, 1, 1, fin);
            num=fgetc(fin);
ora non ho mai visto quel format %hd,ho cercato un po' e la spigazione è uguale ed identica a %d ?!?!?
Inoltre il file fin è aperto in modalità non tradotta quindi non potrei usare la fscanf giusto?
 
Non so cosa intendi per file aperto in maniera "non tradotta".
In C, apri un file con una fopen per leggerlo in maniera bufferata (se si dice in italiano), se usi una fprintf scrivi i dato in maniera formattata (quindi leggibili) o fwrite (in maniera non formattata, quindi formato binario). Mischiare i modi e' pericoloso (ma fattibile) perche' rende molto difficile la lettura. Per leggerlo, devi usare esattamente la stesse chiamate con lo stesso formato. Per esempio, se hai usato una fprintf per scrivereuna stringa, devi usare una fscanf per leggerla. Nota: alcune implementazioni del C richiedono il formato "b" (binary) per creare il file e permettere l'accesso in maniera non formattata (lo usava Microsoft per esempio).
il formato "%hd" significa che il valore e' un short (due byte)
 
Pubblicità
Pubblicità
Indietro
Top