PDA

Visualizza la versione completa : [C] Utilizzo di fseek() per scrivere all'inizio del file


Cesaropa12
13-02-2007, 17:13
Ho scritto un programma che scrive su file una serie n di numeri. Al termine della scrittura,
mi porto all'inizio del file con fseek per scrivere il numero n con le istruzioni:
fseek(Output,0L,0);
fprintf(Output,"%d\n",N);

Tuttavia con queste istruzioni sovrascrivo i primi numeri della serie. Come posso sviare a questo inconveniente?

MItaly
13-02-2007, 17:17
Non puoi evitarlo, devi prima scrivere il numero e poi la serie.

Dr. Fiemost
13-02-2007, 17:48
Prima di scrivere i numeri della serie scrivi alcuni zeri per riservare lo spazio, ad esempio se n un int scrivi quattro byte

Cesaropa12
13-02-2007, 17:49
Il fatto che io devo elaborare milioni di numeri e non posso sapere inizialmente il valore di n. Ho trovato la soluzione: siccome non mi interessa se ci sono spazi fra n e il primo numero, scrivo prima una riga vuota e alla fine scrivo il numero all'inizio del file.

Loading