Ciao,
sono nuovo nel forum e anche nella programmazione.
Sto svolgendo un esercizio per imparare a usare i file binari col Mac usando xcode.
In particolare, mentre leggo una sequenza di interi, dovrei leggerne uno, moltiplicarlo per 2, e sovrascrivere il risultato al posto dell'intero successivo:
while(fread(&x,sizeof(int),1,p)==1)
{
y=x*2;
fwrite(&y,sizeof(int),1,p);
}
Tuttavia, quando visualizzo il file con la readf, scopro que il programma ha preso il primo intero, l'ha raddoppiato e l'ha aggiunto in coda al file. Ovviamente il programma esce dal ciclo e termina.
La dispensa universitaria dalla quale ho preso l'esercizio (ho copiato l'intero codice ma anche così si comporta allo stesso modo), dice che la funzione fread posiziona la testina nella posizione di memoria successiva, e fwrite scrive in quella esatta posizione. Invece fwrite, nel mio programma, si posiziona alla fine del file.
Dove sbaglio? Mi sono spiegato male?
PS Il file prova.txt è stato creato con "wb", la lettura/scrittura con "r+b".
Grazie