PDA

View Full Version : [C] Matrice da file binario


dario79
31-05-2005, 10:15
Raga ho la necessità di creare una matrice a partire da un file immagine ppm, cioè una struttura dati contenente l'immagine (di tipo unsigned char).
Con il tipo pgm ci son riuscito poichè il file è di tipo ascii e distinguevo bene i dati, ma il ppm è codificato in binario quindi non so come trattarlo.
Mi dareste una mano?
Grazie

Ziosilvio
31-05-2005, 13:06
Devi usare le funzioni fread e fwrite, invece di scanf e printf.
Trovi la loro descrizione nell'help del compilatore, o nelle man pages di Linux.
Intanto, visto che devi leggere un file, ti dico che il prototipo di fread è:
size_t fread(void *ptr, size_t size, size_t nelems, FILE *stream)
dove:
- ptr è un puntatore alla zona di memoria in cui vuoi scrivere quello che leggi dal file;
- size è il numero di byte occupati da ciascuno degli oggetti che vuoi leggere;
- nelems è il numero degli oggetti che vuoi leggere con una singola chiamata a fread;
- stream è un puntatore al file da cui leggi gli oggetti.
Il valore restituito è pari al numero di oggetti letti con successo: per esempio, se sei all'inizio di un file lungo 7 byte, allora fread(loc,1,10,myfile) restituisce (size_t)7.