2016-06-17 3 views
0

Da ich eine vector von ganzen Zahlen temporäre Datei unformatiert schreiben:Kann ich ein unformatiertes Schreiben in eine Datei dann ein formatiertes Lesen aus einer Datei für integrierte Typen vornehmen?

ofstream foo("foo.txt", ios::binary); 
const auto length= size(output); 

foo.write(reinterpret_cast<const char*>(length), sizeof(length)); 

if(!empty(input)) foo.write(reinterpret_cast<const char*>(data(output)), sizeof(decltype(output)::value_type) * length); 

kann ich tun, nach dem später aus der Datei gelesen formatiert wo input vom gleichen Typ wie output ist:

ifstream foo("foo.txt", ios::binary); 
size_t size; 

foo.read(reinterpret_cast<char*>(size), sizeof(size)); 
input.resize(size); 

if(!empty(input)) copy(istream_iterator<decltype(output)::value_type>(foo), istream_iterator<decltype(output)::value_type>(), begin(input)); 

Antwort

1

Kann ich ein unformatiertes Schreiben in eine Datei dann ein formatiertes Lesen aus einer Datei für integrierte Typen vornehmen?

Nein, das geht nicht.

Der Inhalt einer Datei, in die Daten mit unformatiertem Schreibvorgang geschrieben werden, unterscheidet sich erheblich vom formatierten Schreibvorgang. Ein formatierter Lesevorgang kann die unformatierten Daten nicht genau interpretieren.

+0

Was ist mit 'char'? Ich sehe nur ein Problem, ein formatiertes Schreiben und unformatiertes Lesen dort zu machen. – LogicStuff

+0

@LogicStuff, "char" ist OK, solange Sie beim Ausführen der formatierten Lesevorgänge keine Leerzeichen überspringen. –

+0

@LogicStuff Sie haben Recht mit "char", aber ich hatte gerade einen Brain Fart bei dieser ganzen peinlichen Frage. –

Verwandte Themen