/* 4. Ein Amt erfaßt von jedem Bewerber Name, Postleitzahl (int), Ort und Straße
mit Hausnummer. Schreiben Sie ein Programm, das es ermöglicht n Adressen
hinzuzufügen(n einlesen),alle Daten auflistet und dann nochmal nur die Bewerber,
deren PLZ mit 3 beginnt!
Verwenden Sie Funktionen für das Schreiben und Lesen der Datei!
Hinweis: Leerzeichen in Namen als Unterstriche schreiben!
------------------------------------------------------------------------------*/
#include <stdlib.h>
#include <stdio.h>
struct b_typ
{  char name[10]; int plz; char ort[10], str[15];
};
void schreiben( char dateiname[] )
{ struct b_typ b;
  FILE * f;
  int i, n;  printf("\n Wieviel neue Bewerber? "); scanf("%i", &n);
  f = fopen( dateiname, "a");
  if( f==NULL) printf(" Datei konnte nicht geoeffnet werden\n");
  else
  {  for( i=0; i<n; i++)
     {  printf("\n Name: "); scanf("%s", &b.name);
        printf("\n PLZ: ");  scanf("%i", &b.plz);
        printf("\n Ort: ");  scanf("%s", &b.ort);
        printf("\n Str. mit Nr.: "); scanf("%s", &b.str);
        fprintf( f, "%s %i %s %s ", b.name, b.plz, b.ort, b.str);
     }
  fclose( f);
  }
}
void tabelle( char dateiname[] )
{ struct b_typ b;
  FILE * f;
  f = fopen( dateiname, "r");
  if( f==NULL) printf(" Datei konnte nicht geoeffnet werden\n");
  else{ while( fscanf( f, "%s %i %s %s ", b.name, &b.plz, b.ort, b.str)==4)
                       printf( "\n%s %i %s %s ", b.name, b.plz, b.ort, b.str);
        printf( "\n\n");
        fclose( f );
      }
}
int main()
{  char dname[]="s:\\amt.dat"; int menue;
   do{  printf("\n - 0 - Ende\n - 1 - Neue Bewerber eintragen\n - 2 - Tabelle\n"
        " - 3 - Plz-3        : ");
        scanf("%i", &menue);
        switch( menue)
        { case 1: schreiben( dname); break;
          case 2: tabelle( dname);
        }
   }while( menue!=0);
   return 0;
}
