Dateizugriffe
Lesezugriff
Das folgende Beispiel verwendet einen Zeichenpuffer für bis zu 255 Zeichen.
In diesen Puffer werden nacheinander die Zeilen der Datei "quelle.txt"
per Einlesestream in vom Typ ifstream eingelesen und an der
Standardausgabe (cout) ausgegeben. Statt dieser Ausgabe kann selbstverständlich
der Text in "Puffer" irgendwie verarbeitet und irgendwohin
geschrieben werden, beispielsweise in eine andere Textdatei.
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
// Einlesestream anlegen und mit Datei verbinden.
ifstream in("quelle.txt");
if (!in.is_open()) // Datei öffnen fehlgeschlagen?
cout << "Datei existiert nicht." << endl;
else
{
cout << "Datei-Inhalt:" << endl;
char Puffer[256];
do
{
// Maximal 255 Zeichen einlesen.
in.getline(Puffer,256);
cout << Puffer << endl; // Zeichenkette ausgeben
} while (!in.eof()); // solange Dateiende nicht erreicht
in.close(); // Datei schließen.
}
return 0;
}
|
Schreibzugriff
Auch dieses Beispiel verwendet einen Zeichenpuffer für bis zu 255 Zeichen.
In diesen Puffer wird dreimal eine Zeichenkette von der Standardeingabe (cin)
eingelesen und der Pufferinhalt als nullterminierter String per Ausgabestream
in die Datei "ziel.txt" geschrieben.
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
// Ausgabestream anlegen und mit Datei verbinden.
ofstream out("ziel.txt");
if (out.is_open()) // Hat das Öffnen geklappt?
{
cout << "Geben Sie bitte 3 Zeilen Text ein!" << endl;
char Puffer[256];
int i;
for(i=0;i<3;++i)
{
cin.getline(Puffer,256); // Datenquelle: Konsolen-Eingabestream
out << Puffer << '\n'; // Datensenke: Datei
}
}
return 0;
}
|