Hallo,
ich blicke nicht mehr durch, 
Das glaube ich nur zu gern! Beispiel:
   if(auswahl == 0)
      {printf("\n\tFelgen ID[%i]",auswahl);}   
   else if(auswahl == 1)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else if(auswahl == 2)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else if(auswahl == 3)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else if(auswahl == 4)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else if(auswahl == 5)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else if(auswahl == 6)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else if(auswahl == 7)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else if(auswahl == 8)
      {printf("\n\tFelgen ID[%i]",auswahl);}
   else
      {printf("\n Falsche Eingabe. Bitte versuchen Sie es nochmal:");
DAS ist das gleiche wie: 
   if(auswahl < 9)
      {printf("\n\tFelgen ID[%i]",auswahl);}   
   else
      {printf("\n Falsche Eingabe. Bitte versuchen Sie es nochmal:");
Ausserdem sind Namen wie "funk1", "funk2" ... wirklich nur für eines geeignet: Um nicht mehr durchzublicken. 
Naja, weiter habe ich dann das gefunden: 
      char zeile[90];
      zaehl = 0;
      do
         {
         eingabe.getline(zeile,250,delim);
         felgen[zaehl].id = atoi(zeile);
Wenn "eingabe.getline" das tut, was ich vermute, dann versucht es bis zu 250 Zeichen in einen 90 Zeichen langen Puffer einzulesen ( "zeile" wurde ja nur auf 90 dimensioniert ). 
Das sind nur die Sachen, die einem so auf den ersten Blick ins Auge springen. Vielleicht solltest Du doch erstmal ein C++ -Kurs durcharbeiten, bevor Du weitermachst...