Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - modalità di apertura di un file: differenze
Forum - C/C++ - modalità di apertura di un file: differenze

Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 11:25
Mercoledì, 26/01/2011
mi potreste spiegare la differenza tra aprire un file in modalità "a" o in modalità "a+"?
sul mio manuale di c c'è scritto che:
a: apre il file in accodamento(non è necessario che il file esista)
a+: apre il file in lettura e scrittura(accoda il file se esiste)

a me sembrano uguali=( ho fatto delle prove e riesco sia a leggere che a scrivere con tutte e due (dopo aver chiamato la funzione rewind...)

PM
Avatar
Premoli (Normal User)
Pro


Messaggi: 108
Iscritto: 25/06/2009

Up
2
Down
V
Segnala al moderatore
Postato alle 12:33
Mercoledì, 26/01/2011
Le differenze sono quelle che hai elencato tu.
Ti stai sbagliando invece sul fatto che con la modalità "a" puoi leggere in quanto non è così

prova questi due codici per rendertene conto.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     FILE *fp;
  6.     int n=0;
  7.  
  8.     fp=fopen("prova.txt", "a");
  9.  
  10.     fscanf(fp, "%d", &n);
  11.  
  12.     printf("\n%d\n", n);
  13.  
  14.     return 0;
  15. }



Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     FILE *fp;
  6.     int n=0;
  7.  
  8.     fp=fopen("prova.txt", "a+");
  9.  
  10.     fscanf(fp, "%d", &n);
  11.  
  12.     printf("\n%d\n", n);
  13.  
  14.     return 0;
  15. }



Crea già il file prova.txt e scrivici dentro ad esempio il numero 78.
Ti accorgerai che con il primo codice ovvero con la modalità "a" la printf ti stamperà 0 ovvero il valore a cui abbiamo inizializzato n, nel secondo caso invece, con la modalità "a+", la printf stamperà 78 (o il numero che hai scritto nel file) a conferma che solo con a+ puoi leggere.

devo aver sbagliato qualcosa con le prove che ho fatto=) grazie mille! 10+ - Alex - 26/01/11 14:16
PM