Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    211

    [c] Utilizzo fseek

    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?

  2. #2
    Non puoi evitarlo, devi prima scrivere il numero e poi la serie.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Prima di scrivere i numeri della serie scrivi alcuni zeri per riservare lo spazio, ad esempio se n è un int scrivi quattro byte
    “Guardo in alto mentre cammino, così le lacrime non scenderanno...”
    Kyu Sakamoto

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    211
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.