String und int Variable in eine Datei schreiben

XxbambamxX

Mitglied
Hi leute

ich habe folgendes Problem.
Ich möchte einen String und eine andere Variable vom Typ Int in eine Datei schreiben.
Mit einer gings ja ganz gut:
Code:
int writepassword(string password)
{
	ofstream Output("password.psw", ios::binary);
	Output.write((char*)&password, sizeof(password));
	Output.close();
return 0;
}

das konnte ich dann auch einfach auslesen:
Code:
string readpassword(string password)
{
	ifstream Input("password.psw", ios::binary);
	Input.read((char*)&password,sizeof(password));
	Input.close();
return password;
}

Wenn ich nun aber 2 voneinander unabhängige Variablen die nicht vom gleichen Typ sind in eine Datei schreiben möchte und dann jeweils nur eine davon auslesen weiss ich nicht wie das funktionieren könnte.
So funktioniert das irgendiwe nicht :-):confused:
Code:
int writepassword(string password, int uses)
{
	ofstream Output("password.psw", ios::binary);
	Output.write((char*)&password, sizeof(password));
    Output.write((char*)&uses, sizeof(uses));
	Output.close();
return 0;
}
dann erhalte ich nämlich beim String immer das richtige und bei der Int Variable immer 0.
Ist das überhaupt möglich?
Wenn ja wie..?
Ich hoffe ich konnte das Problem verständlich erleutern und freue mich auf die Antworten :-)

mfg
 
Hallo,

da sehe ich zwei Möglichkeiten:

1. Du reservierst in der Datei jeweils eine feste Größe für die verschiedenen Datentypen. Dann kannst du den Dateizeiger an die gewünschte Stelle positionieren und die entsprechende Variable direkt auslesen.

2. Du machst es so wie jetzt, nämlich die Daten hintereinander wegschreiben. In dem Fall musst du auch wieder die gesamte Datei einlesen und hast damit die gewünschten Daten. Wie schon angemerkt wurde: Die Streamoperatoren machen einem das Leben wesentlich einfacher.

Gruß
MCoder
 
Zurück