Das folgende Code-Beispiel stammt aus dem Buch
Objektorientiertes Programmieren in C++
- Ein Tutorial für Ein- und Umsteiger
von Nicolai Josuttis, Addison-Wesley München, 2001
© Copyright Nicolai Josuttis 2001
#include <string> // für Strings
#include <iostream> // für I/O
#include <fstream> // für Datei-I/O
#include <iomanip> // für setw()
#include <cstdlib> // für EXIT_FAILURE
// Vorwärtsdeklarationen
void zeichensatzInDateiSchreiben (const std::string& dateiname);
void dateiAusgeben (const std::string& dateiname);
int main ()
{
try {
zeichensatzInDateiSchreiben("charset.out");
dateiAusgeben("charset.out");
}
catch (const std::string& msg) {
std::cerr << "Exception: " << msg << std::endl;
return EXIT_FAILURE;
}
}
void zeichensatzInDateiSchreiben (const std::string& dateiname)
{
// Datei zum Schreiben öffnen
std::ofstream datei(dateiname.c_str());
// wurde die Datei wirklich geöffnet?
if (! datei) {
// NEIN, Ausnahme auslösen
throw "kann Datei \"" + dateiname
+ "\" nicht zum Schreiben oeffnen";
}
// Zeichensatz in Datei schreiben
for (int i=32; i<127; ++i) {
// Wert als Zahl und als Zeichen ausgeben:
datei << "Wert: " << std::setw(3) << i << " "
<< "Zeichen: " << static_cast<char>(i) << std::endl;
}
} // schließt die Datei automatisch
void dateiAusgeben (const std::string& dateiname)
{
// Datei zum Lesen öffnen
std::ifstream datei(dateiname.c_str());
// wurde die Datei wirklich geöffnet?
if (! datei) {
// NEIN, Ausnahme auslösen
throw "kann Datei \"" + dateiname
+ "\" nicht zum Lesen oeffnen";
}
// alle Zeichen der Datei nach std::cout kopieren
char c;
while (datei.get(c)) {
std::cout.put(c);
}
} // schließt die Datei automatisch