lib
No notes
Syntax:
C++
#include <iostream> using namespace std; #include <string.h> #include <fstream> #include <stdlib.h> #include <header.h> int verarbeitePerson() { enum zustand {inOrdnungsnr1, imNamen, inID, inURL, anzahl}; ifstream datei; char puffer[100], zeichen; int zaehler; enum zustand zustand; datei.open("personen.txt"); if(!datei) { cout << "Die Datei konnte nicht gefunden werden." << endl; return 1; } zustand=inOrdnungsnr1; zaehler=0; int i=0; for (datei.get(zeichen);!datei.eof();datei.get(zeichen)) { switch(zeichen) { case '(': puffer[zaehler]='\0'; strcpy(person[i].name,puffer); zustand=inID; zaehler=0; break; case ')': puffer[zaehler]='\0'; strcpy(person[i].id,puffer); zustand=inURL; zaehler=0; break; case '"': puffer[zaehler]='\0'; if (zustand==inOrdnungsnr1) { puffer[zaehler]='\0'; zaehler=0; i++; zustand=imNamen; } else if (zustand==inURL) { break; } break; case ' ': if (zustand==inOrdnungsnr1) break; else { puffer[zaehler]=zeichen; zaehler++; break; } break; case '\n': zustand=inOrdnungsnr1; zaehler=0; break; default: puffer[zaehler]=zeichen; zaehler++; break; } } } void druckePerson(int i) { int j; cout << person[i].name << "hat die Identifikation: " << person[i].id << " und hat folgende " << person[i].gesamt << " Patenschaften uebernommen " << endl; for (j=0; j<800;j++) { if (person[i].vater[j]==0) continue; else cout << person[i].vater[j] << " Patenkind(er)von " << person[j].name << endl; } } int verarbeiteBeziehung() { ifstream datei; char puffer[100], zeichen; int zaehler; int ordnungsnr2; int zustand; /* zustand=0 : leer, zustand=1 : inOrdnungsnr1, zustand=2 : inOrdnungsnr2, zustand=3 : inAnzahl, */ datei.open("beziehungen.txt"); if(!datei) { cout << "Die Datei konnte nicht gefunden werden." << endl; return 1; } zustand=0; zaehler=0; int ordnungsnr1, anzahl; for (datei.get(zeichen);!datei.eof();datei.get(zeichen)) { switch(zeichen) { case ' ': if (zustand==1){ puffer[zaehler]='\0'; ordnungsnr1=atoi(puffer); zustand=2; zaehler=0; break; } else if (zustand==2){ puffer[zaehler]='\0'; ordnungsnr2=atoi(puffer); zaehler=0; zustand=3; break; } else if (zustand==0){ break; } case '\n': puffer[zaehler]='\0'; anzahl=atoi(puffer); person[ordnungsnr1].vater[ordnungsnr2]=anzahl; person[ordnungsnr1].gesamt=person[ordnungsnr1].gesamt+anzahl; zustand=0; zaehler=0; break; default: puffer[zaehler]=zeichen; zaehler++; if (zustand==0) zustand=1; break; } } } void suchePerson(char ident) { int i; for (i=0; i<800; i++) { if (strcmp(person[i].id, ident)==0){ personen.druckePerson(i); cout << endl; } } }