Salve,
Non riesco a fare il seguente esercizio,qualcuno mi può dare una mano cortesemente??
Creare i file vettori.h e vettori.c che consentano di utilizzare la seguente
struttura:
struct vettore {
unsigned char size;
double *data;
};
e la funzione:
extern int vettore_leggi(FILE* f, struct vettore* v);
La funzione lavora con file binari in cui ogni vettore è salvato come:
1) un intero senza segno a 8 bit (chiamiamolo N) che contiene il numero di
elementi del vettore
2) N numeri in virgola mobile a 64 bit in little endian, codificati secondo
il formato IEEE 754
Ad esempio il file vettori1.bin, visto in un editor esadecimale (come HxD)
contiene:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 04 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00 00
00000010 40 00 00 00 00 00 00 08 40 00 00 00 00 00 00 10
00000020 40
ovvero un solo vettore di 4 elementi con i valori 1, 2, 3 e 4.
La funzione accetta un puntatore a FILE aperto in lettura in modalità non
tradotta (binaria) e un puntatore ad una struct vettore e deve leggere il
prossimo vettore contenuto nel file.
La funzione ritorna 1 se è riuscita a leggere un intero vettore
correttamente, 0 altrimenti. In particolare vettore_leggi ritorna 0 se
raggiunge la fine del file prima di aver letto interamente il vettore (viene
utilizzato per sapere se nel file non ci sono più vettori).
Non è possibile utilizzare rewind in questa funzione (perché non è detto che
venga eseguita a partire dall’inizio del file).
grazie in anticipo...![]()