Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiarbeit unter C++
Nasenbaer
2003-01-04, 19:29:44
Hi,
habe mal eine Frage bezüglich der Dateiarbeit. Bisher ist mir die Methode mittels fopen(). Soweit ich weiß arbeit man unter C++ aber nicht damit sondern mit Streams oder so!?
Wie macht man Dateiarbeit nach C++ Standard?
Mfg Nasenbaer
Vedek Bareil
2003-01-05, 01:38:07
Einlesen:
#include <fstream.h>
fstream infile; //Instanziiere die Klasse fstream
infile.precision(8); /*legt die Anzahl einzulesender
Dezimalstellen fest oder so, braucht man
nicht unbedingt */
infile.open("Dateiname", ios::in); //Eingabedatei öffnen
infile >> Wert1 >> Wert2 >>nxl;
/*in der ersten Zeile der Datei Wert1 und Wert 2 einlesen, mit nxl
in die nächste Zeile springen. nxl muß man glaub ich selbst
programmieren, ob es dafür ne Standardfunktion gibt, weiß ich nicht */
infile.close(); //Eingabedatei schließen
Ausgabe:
#include <fstream.h>
fstream outfile //fstream instanziieren
//Formatierungsanweisungen:
outfile.setf(ios::scientific);
outfile.precision(8);
outfile.open("Dateiname", ios::out); //Ausgabedatei öffnen
outfile << Wert1 << " "<< Wert2 <<endl;
*/Wert1 und Wert2 mit zwei Leerzeichen dazwischen in die erste Zeile
der Datei ausgeben, dann in die nächste Zeile springen*/
outfile.close(); //Ausgabedatei schließen
Eine Implementation von nxl sieht z.B. so aus:
/* -------------------------------------------------
routine moves pointer of input file to next line
-------------------------------------------------
*/
istream &nxl(istream& is)
{
char xcr[257];
is.getline(xcr,256);
return is;
}
Nasenbaer
2003-01-05, 02:24:07
Thx!
Wert1 und 2 können allerdings auch einfache Strings sein oder? Möchte nämlich ne Error Klasse schreiben, die Log-Files schreibt.
Und dabei dachte ich mir, wenn ich schon ne Klasse schreibe dann kann der Rest auch in C++ gehalten sein. :)
Mfg Nasenbaer
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.