Beispiel 5: fstream IV

05.12.2016 03:31 Uhr
#include <iostream>

using namespace std;
#include <fstream>

int main()
{
char zeichenkette[100];

ifstream eingabe;

eingabe.open("daten.dat");
eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
}

Beispiel 5: Erläuterungen I

#include <iostream>

using namespace std;
#include <fstream>

int main()
{
char zeichenkette[100];

fstream eingabe;

eingabe.open("daten.dat");
Wir haben einleitend beschrieben, daß die Art in der wir
cin verwendet haben, einige von uns bisher ignorierte Nebenwirkungen hat.
Das ist sehr komfortabel, wenn wir genau wissen, in welcher Reihenfolge
Eingabedaten auf uns zukommen. Es ist aber sehr unpraktisch, wenn wir erst aus
den Daten entnehmen können, was genau sie enthalten. (In den
Geisteswissenschaften meist der Normalfall.)

Für diese Zwecke bieten alle Eingabestromobjekte
Methoden an, mit denen wir Daten unabhängig von Datentypeigenschaften
lesen können. *.getline() ist eine solche Methode aller ifstream-Objekte,
die aus dem in Frage stehenden Eingabestrom Daten
in eine angegebene Variable überträgt.
Dabei werden alle Daten bis zum ersten Zeilenende gelesen - allerdings sicher
nicht mehr als eine bestimmte angegebene Zahl um
ein Überlaufen der angegebenen Zeichenkette zu verhindern.

eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
eingabe.getline(zeichenkette,100);
cout << "Erhalten: " << zeichenkette << endl;
}

Anhang: example5.zip

Schlagwörter: