Zum Inhalt springen

Vektoren Speichern und Auslesen


FisyX

Empfohlene Beiträge

Ich brauche dringend Hilfe.

Wie kann ich Vektoren in c ++ bei programm ende in einer Datei speichern und bei Programmstart wieder auslesen lassen?

Bitte schnellstmöglich um hilfe (Brauche ein Beispiel bis spätestens 08.07.2003.)

Bitte beachten:

Wir Programmieren in Borland C++ :o/

Das heißt so Header Dateien wie ctime gibts bei uns leider nicht :o(

Thx schonmal im Vorraus für eure Bemühungen!

;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was genau verstehst du unter vektoren?

Für mich ist das sowas:


  struct Vertex

  {

    float x;

    float y;

    float z;

  }

Stimmt?

Wenn ja, dann kannst du so ne struktur doch einfach in ein file

mit fwrite reinschreiben, wenn du mehere hast leg sie einfach hintereineander

und ganz vorne noch die anzahl.

Diablo999

Link zu diesem Kommentar
Auf anderen Seiten teilen



#include <vector>
#include <iostream>
#include <iterator>
#include <fstream>
#include <vector>

using namespace std;

int main(int argc, char * argv[])
{
vector<int> myVec;
myVec.reserve(100);
// SInnlosesbefüllen des Vectors, hauptsach da is was drinn
for(int i = 0;i < 100;++i)
myVec.push_back(i);

fstream datei("Ausgabe.txt",ios::out);
if(!datei)
return 20;

// Speichern
datei<<myVec.size()<<" "; // Optional

// Das ist das ganze Speichern. Bei Fragen fragen
copy(myVec.begin(),myVec.end(),ostream_iterator<int>(datei," "));

datei.close(); // Datei schliessen (wollen ja wieder draus lesen

// Lesen

datei.open("Ausgabe.txt",ios::in);
if(!datei)
return 20;

myVec.clear(); // Vector leer machen, sonst heisst es noch ich les nix das stand da ja schon )

vector<int>::size_type size; //Optional
datei>>size; //Optional
myVec.reserve(size); //Optional

istream_iterator<int> begin(datei); // Anfangsiterator auf die Datei
istream_iterator<int> end; // Enditerator



copy(begin,end,back_inserter(myVec)); // Und wieder auslesen.


// Kontrollausgabe ob das auch geht

copy(myVec.begin(),myVec.end(),ostream_iterator<int>(cout," "));



return 0;
}

[/PHP]

Mit dem reserve verhinderst Du dauerndes neualloziieren des Speichers und die damit verbundenen laufkosten. Wenn es also Zeitkritisch wird lohnt es sich die größe mitzuschreiben.

Ansonsten recht einfach , oder ? :o)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...