Ciao a tutti, ho una serie di problemi che mi
sta facendo impazzire non poco..
Allora:
1) Nell'I\O su file del C++ aprendo un file in modalità
ios::ate dovrei poter preservare quello che c'è già scritto
nel file, conservando la possibilità di modificare in una
qualsiasi posizione del file. Ma come funziona veramente?
#include <iostream>
#include <fstream>
using namespace std;
void main()
{
char stringa[10] = "ciao";
char stringa2[10];
fstream stream("file.txt", ios::in | ios:ut | ios::ate |ios:ios::app);
stream.write((char *) &stringa, sizeof(stringa));
stream.read((char *) &stringa2, sizeof(stringa2));
cout << stringa2;
}
Se elimino ios::ate non cambia nulla.
COSA IMPORTANTE: Non viene prodotto alcun file "file.txt" nella directory
dove dovrebbe comparire se non specifico ios::app.
Se aggiungo ios::app il file compare. Perchè?
Tra l'altro l'output su schermo consiste in "ciao seguito da una
serie di caratteri strani anche se il file non è aperto in modalità
binaria (e anche aprendolo in mod binaria non cambia nulla)
RIASSUMENDO: Io ho bisogno di scrivere su file dei record (strutture intere)
che andranno poi recuperati dal programma e stampati a video.Ho bisogno anche di
avere accesso diretto al file per modificare i singoli record e anche
di aggiungere in coda (o in una posizione qualsiasi) altri record.
Come si fa?
Grazie a tutti e scusate la prolissità.:quipy:
Francesco