FisyX Geschrieben 7. Juli 2003 Teilen Geschrieben 7. Juli 2003 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 ( Thx schonmal im Vorraus für eure Bemühungen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Diablo999 Geschrieben 7. Juli 2003 Teilen Geschrieben 7. Juli 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Knuddlbaer Geschrieben 8. Juli 2003 Teilen Geschrieben 8. Juli 2003 #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 ? ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.