Gespeicherte Datei wieder einlesen

Bastih84

Mitglied
Ich habe in der FH die Aufgabe ein "Personal-Verwaltunga-Programm" zu schreiben, bin auch fast fertig, allerdings weiß ich nicht, wie ich die Datei die ich Ausgebe wieder in mein Programm bekomme, vielleicht hat ja einer von euch einen Tipp für mich
 

Anhänge

  • 4.zip
    4.zip
    1,3 KB · Aufrufe: 15
moin


Ich weiss nicht ganz was du willst.

Nimm einfach ifstream statt ofstream.
Hast du garkeine Ahnung wie man einliesst oder suchst du ne gute Lösung für genau dein Programm?


mfg
umbrasaxum
 
Ich bin absoluter Laie in Sachen Klassen, ich habe keine Ahnung wie ich die einzelnen Einträge wieder dahin bekomme wo ich sie her habe und wie ich dem dann sage wo schluss ist. Also wenn ich das Programm auf mache und was eingebe und speichere, soll es, wenn ich das Programm neu starte, die Daten aus dieser Datei einlesen, aufmachen mit ifstream ist schon klar
 
ist ganz einfach

Code:
 std::ifstream Eingabedatei("Deine Datei");  
	// Wenn die Datei erfolgreich geöffnet wurde
	if (Eingabedatei)
	{
	//	cout << "Die Datei bla wurde erfolgreich gelesen.\n";
	}
	// Wenn die Datei nicht geöffnet werden, wird eine Fehler Meldung ausgegeben
	else
	{
		cout << "Die Datei bla kann nicht geoeffnet werden.\n";
		cout << "Bitte ueberpruefen Sie ob sich die Datei im Ausgabeverzeichnis befindet\n";
		cout << "Das Programm wird beendet. Bitte druecken Sie eine Taste.";
		getchar();
		exit(1);
	}
 
Hallo,

also das machst du genauso wie du sie in die Datei geschrieben hast )falls in Textform
abgescpeichert andernfalls heißt
dein Stichwort ist Serialieseirung bzw Deserialisierung...

Code:
#include <iostream>
#include <fstream>

using namespace std; 

class Test{
	int a;
	int b;
	string text;
	public:
		Test(int a, int b, const string& word){
			this->a = a;
			this->b = b;
			text = word;
		}
		Test(){
			a = 0;
			b = 0;
			text = "";
		}


		friend ostream& operator<<(ostream& cout, const Test& toPrint){
			cout << toPrint.a << "," << toPrint.b << "," << toPrint.text;
		}
};

class Serializer{

	public:
		bool serialize(const string& filename, const Test& toSerialize){
			ofstream of(filename.c_str(), ofstream::binary);
			if(!of)
				return false;
			else
				of.write((const char*) &toSerialize, sizeof(Test));
			return true;
		}

		bool deserialize(const string& filename, Test& toDeserialize){
			ifstream input(filename.c_str());
			if(!input)
				return false;
			else
				input.read((char*) &toDeserialize, sizeof(Test));
			return true;	
		}
};

int main(){
	Test toSerialize(2, 3, "Das ist ein Test");
	Test toDeserialize;
	cout << toDeserialize << endl;
	Serializer s;
	s.serialize("versuch.dat", toSerialize);
	s.deserialize("versuch.dat", toDeserialize);
	cout << toDeserialize << endl;
}

Wenn du fragen dazu hast frag einfach bzw schau dir auch mal die Funktionen
http://www.cplusplus.com/ref/iostream/istream/read.html
und
http://www.cplusplus.com/ref/iostream/ostream/write.html an.

Gruß

RedWing
 
Zuletzt bearbeitet:
Zurück