PDA

Visualizza la versione completa : [C] Scrittura su file


fillo_84
24-08-2005, 19:13
Ho un problema nello scrivere in un file.....

insomma, ho il mio bel main che richiama una funzione, crea_fs, senza parametri, e questa funzione deve scrivermi un totale di "blocchi" in un file.

void crea_fs(){


FILE *f= fopen (fname,"wb");
int s;
s=33;

fwrite (&s,sizeof(int),1,f);
fclose(f);

}

praticamente cos scriverei un intero(33), nel file, ma in realt non lo fa.....

2a domanda
in pratica dovrei fare la stessa cosa ripetutamente con un'altra variabile "blocco" del tipo:


void *blocco;
blocco = malloc(blocksize);
memset(blocco,0,blocksize);


dove blocksize una mia variabile predefinita...

si pu fare? xk non riesco fare proprio niente.....e il prob che non so dove sbaglio....

anx721
24-08-2005, 23:09
il primo argomento della fwrite deve essere il puntatore alla zona di memoria che contiene i byte da scrivere nel file. Se te gli passi &s, s uun intero che in c rapprsentato da 4 byte:

xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx

e facendo scrivere

fwrite (&s,sizeof(int),1,f);

gli fai scrivere quei 4 byte che non son interpretati come interi.

Dovresti convertire iltuo intero inun array di caratteri, se l'intero fisso usa:

char *s = "33";

altrimenti utilizza la funzione itoa(n) per convertire l'interno n in una stringa "n".

Per fare la secnda cosa dovresti passare alla fwrite il puntatore blocco

Loading