Zuerst einmal ist der Header fstream.h nötig
Speichern:
-------------
Code:
ofstream [COLOR=red]dataus[/COLOR];
[COLOR=red]dataus[/COLOR].open("[COLOR=orange]dateiname[/COLOR].[COLOR=royalblue]xxx[/COLOR]",ios::out);
[COLOR=red]dataus[/COLOR]<<[COLOR=sienna]variable1[/COLOR][COLOR=skyblue]<<" "[/COLOR];
[COLOR=red]dataus[/COLOR]<<[COLOR=sienna]variable2[/COLOR][COLOR=skyblue]<<" "[/COLOR];
[COLOR=red]dataus[/COLOR]<<[COLOR=sienna]variable3[/COLOR][COLOR=skyblue]<<" "[/COLOR];
[COLOR=red]dataus[/COLOR].close();
Erklärung:
dataus ist der name des Befehls, der das Speichern in eine Datei ermöglicht. der kann einen beliebigen namen haben.
("
dateiname ist irgendwie logisch
xxx auch. Hier kann endweder ein relativer pfad (zur cpp-datei) sein (z.b. variablen.txt), oder ein absoluter (z.b. c:\programme\variablen.txt)
variable spricht eigentlich auch für sich. so heißt halt die Variable die gespeichert werden soll.
Das
<<" " ist nötig, weil zwichen den variablen ein leerzeichen sein muss, damit die variablen getrennt werden. das
<<" " sorgt für ein schreiben eines leerzeichens nach der variable.
der letzte Befehl dataus.close(); ist nicht zwingend nötig, aber ist besser, damit der Compiler bescheid weiß, dass hier schluss mit speichern ist.
Laden:
-------------
Code:
ifstream datin;
datin.open("dateiname.xxx",ios::in);
datin>>variable1;
datin>>variable2;
datin>>variable3;
datin.close();
Erklärung:
eigentlich das selbe wie beim speichern.
solltest du allerdings perscheife das lladen übernehmen (mit hilfe von arrays) muss die schleife z.b. so aussehen:
Code:
int z=0;
while( !datin.eof() )
{
datin>>variable[z];
z++;
}
Erklärung:
die Abfrage in der Schleife sorgt dafür, dass nicht über die maximale anzahl an daten in der datei hinaus gegangen und geladen wird, sonst würde in Array-felder, die du garnicht hast, sinnsloses zeugs reinkopiert. es sorgt also dafpr, dass abgefragt wird, ob das ende der datei (
end
of
file) nicht überschritten wird.
Wenn noch fragen aufkommen sollten, sag bescheid
PS: habe versehentlich den falschen header aufgeschrieben. ist jetzt korrigiert.