Scrittura su file esistente

di il
3 risposte

Scrittura su file esistente

void scritturafile(int i)
{
    FILE *ptrsalv;

            ptrsalv = fopen("Nicolaus.txt","a");

            if(ptrsalv)
            {
             printf("\nIl file e' aperto correttamente, la scrittura e' avvenuta correttamente! \n");

             fprintf(ptrsalv,"%s %d %d %d %d %d\n", array_voli[i].nomeCompagnia, array_voli[i].oraPartenza, array_voli[i].gate, array_voli[i].numeroPasseggeri, array_voli[i].OreVoloFatte, array_voli[i].Carburante);
            
            }
}
Questa è una funzione che deve scrivere su un file già creato, solo che se apro il file con modalità "w" essendo che lui entra nella funzione più volte, le volte che scriverà sul file successive alla prima andrà ad eliminare quelle già presenti per sovrascrivere quelle attuali;
Mentre se apro il file in modalità "a" essendo che il file viene scritto correttamente la prima volta, le volte successive alla prima andrà a scrivere in coda gli elementi e quindi a scriverli ogni volta che io chiamo la funzione, ma così mi ritrovo infinite volte la stessa stringa.
PS. La i che passo alla funzione è quella che dirà quale elemento della struct deve scrivere su file.
Qualcuno può chiarirmi il mio errore?

3 Risposte

  • Re: Scrittura su file esistente

    Dovresti chiarire cosa vuoi fare esattamente perché non si capisce. Magari fai un esempio ...
  • Re: Scrittura su file esistente

    Io ho una struct con diverse stringhe che specificano informazioni dei voli aerei e devo salvare su un file tutti i voli di una compagnia, quindi una volta individuato le stringhe di quella compagnia devo scrivere su un file che è stato già creato solo che aprendo il file con modalità "a" me le aggiunge al file ogni volta che io eseguo il programma, invece dovrei scriverle una volta soltanto.
  • Re: Scrittura su file esistente

    Se non ho capito male l'esigenza, devi usare l'accesso "binario".
Devi accedere o registrarti per scrivere nel forum
3 risposte