Heiligenkalender Basisimplementation – Stufe 1

06.02.2017 04:28 Uhr
#include <iostream>
using namespace std;
#include <string.h>
#include <stdlib.h>
#include <fstream>


struct festtag
{
    char name[64];
    int tag;
    int monat;
} ;
enum zustand {imNamen,imTag,imMonat};

int main()
{
    struct festtag fest;
    char puffer[100],zeichen;
    int zaehler;
    enum zustand zustand;

    ifstream datei;

    datei.open("heilige.txt");

    zustand=imNamen;
    zaehler=0;
    for (;;)
    {
        datei.get(zeichen);
        if (datei.eof()) break;
        switch(zeichen)
        {
        case '/':
            puffer[zaehler]='\0';
            zaehler=0;
            strcpy(fest.name,puffer);
            zustand=imTag;
            break;
        case '.':
            if (zustand!=imNamen)
            {
                puffer[zaehler]='\0';
                zaehler=0;
                fest.tag=atoi(puffer);
                zustand=imMonat;
            }
            else
            {
                puffer[zaehler]=zeichen;
                zaehler++;
            }
            break;
        case '\n':
            if (zustand!=imMonat)
            {
                cout << "Verstümmelte Festangabe: " << puffer << endl;
                break;
            }
            puffer[zaehler]='\0';
            zaehler=0;
            fest.monat=atoi(puffer);
            cout << "Gelesen: " << fest.name << " am " << fest.tag << "." <<
                    fest.monat << endl;
            zustand= imNamen;
            break;
        default:
            puffer[zaehler]=zeichen;
            zaehler++;
            break;
        }
    }
    {
        /* bitte ignorieren; nur bis zu Ihrer Anmeldung notwendig */
        int x;
        cin >> x;
    }

}

Dateien: Stufe 1

Schlagwörter: