Beispiellösung mit zweidimensionalem Vector

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main() {

    char zeichen;

    string buffer;

    vector<vector<string>> database;
    vector<string> dataset;

    bool start = true;

    ifstream results;

    results.open("ergebnisse.txt");

    if (results) {

        while (results.get(zeichen)) {

            switch (zeichen) {

                case '*':

                    if (!start) {
                        database.push_back(dataset);
                        dataset.clear();
                        start = true;
                    }

                    break;

                case ':':

                    buffer = "";
                    break;

                case '\n':

                    // Erste Zeile soll nicht als neuer Datensatz interpretiert werden
                    if (start) {
                        start = false;
                    } else {
                        dataset.push_back(buffer);
                    }
                    break;

                default:
                    buffer += zeichen;
            }
        }
    } else {
        cout << "Datei ergebnisse.txt existiert nicht.";
    }

    cout << " *** Datasets of Database " << endl << endl;
    vector<vector<string>>::iterator iterator;

    for (int i = 0; i < database.size(); i++) {

        cout << "Database entry #" << i << endl;

        for (int j = 0; j < database[i].size(); j++) {

            cout << database[i][j] << endl;
        }

        cout << endl;
    }


    return 0;
}