Scrittura su file esistente

di Anonimizzato29560 il
3 risposte
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

  • Dovresti chiarire cosa vuoi fare esattamente perché non si capisce. Magari fai un esempio ...
  • 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.
  • Se non ho capito male l'esigenza, devi usare l'accesso "binario".
Devi accedere o registrarti per scrivere nel forum
3 risposte