Kleine Hilfen zu den Projekten

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;
}