Sorry hat wohl nicht so geklappt...Bekomme das Auslesen aus einer zuvor gespeicherten Datei nicht hin



  • // Implementierungsdatei des Moduls 'textfiles.h'
    // textfiles.cpp
    
    #include <iostream>
    #include <iomanip>
    #include <fstream>
    #include <string>
    
    using namespace std;
    #include "textfiles.h"
    
    int eingabe_m;
    string eingabe, ausgabe;
    
    //Variablen für die Datei einlesen
    ifstream strom;				//strom zum Lesen des Dateistroms
    ofstream schreiben;
    
    string dateiname;
    
    //Variablen für die Anzahl der Bücher im Schrank
    unsigned anzahl_buecher;	//anzahl_buecher Anzahl der Buecher im Schrank
    unsigned aktuelle_buecher;	//aktuelle_buecher Zählvariable für Schleifen
    const int max_buecher=200;	//maximale Anzahl der Buecher im Buecherschrank
    
    //Variablen für die Titel Suche
    string autor, verlag, titel;
    string nummer;
    string isbn;
    string E_jahr; 
    string preis;
    
    //Suche nach dem Buchautor
    string Such_Autor; //Variable zum Suchen des Autornamens
    
    //-----------------------------------------------------------------------------
    //Anlegen einer Struktur zum Speichern für ein Buch
    struct buecher 
    {
    string titel;			//Variable für den Titel
    string autor;			//Variable für den Autor
    string E_jahr;			//Variable für den Erscheinungsjahr
    string verlag;			//Variable für den Verlag
    string preis;			//Variable für den Preis
    string isbn;			//Variable für den ISBN-Nummer
    };
    //-----------------------------------------------------------------------------
    //buecherschrank aufstellen
    buecher buecherschrank[max_buecher];
    //-----------------------------------------------------------------------------
    //buecher aus Datei einlesen
    
    void BuecherAnlegen(void)
    {
    //Schleifenzähler für die Anzahl der zu speichernden Bücher.
    cout << "Wieviele Buecher moechten Sie anlegen? ";
    cin >> anzahl_buecher;
    cout << endl;
    
    //Schleife zum manuellen Einlesen der Daten
    
    for (aktuelle_buecher=0; aktuelle_buecher < anzahl_buecher; ++aktuelle_buecher)     
    {		
    cout << "Buch " << aktuelle_buecher + 1 << endl;
    cout << "--------------------------------------" <<endl;
    
    cout << "ISBN-Nummer:.......";
    cin >> buecherschrank[aktuelle_buecher].isbn;
    
    cout << "Buchtitel..........";
    cin >> 	buecherschrank[aktuelle_buecher].titel;
    
    cout << "Autor..............";
    cin >> 	buecherschrank[aktuelle_buecher].autor;
    
    cout << "Erscheinungsjahr...";
    cin >> 	buecherschrank[aktuelle_buecher].E_jahr;
    
    cout << "Preis..............";
    cin >> 	buecherschrank[aktuelle_buecher].preis;
    
    cout << "Verlag.............";
    cin >> 	buecherschrank[aktuelle_buecher].verlag;	
    }
    cout << endl << endl << endl;
    TitelSortieren();
    menueAufruf();
    }
    //-----------------------------------------------------------------------------
    void BuecherAusgeben(void)
    {
    for (aktuelle_buecher=0; aktuelle_buecher < anzahl_buecher; ++aktuelle_buecher)
    {
    cout << "Buch " << aktuelle_buecher + 1 << endl;
    cout << "ISBN-Nummer:......." << buecherschrank[aktuelle_buecher].isbn << endl;
    cout << "Buchtitel.........." << buecherschrank[aktuelle_buecher].titel << endl;
    cout << "Autor.............." << buecherschrank[aktuelle_buecher].autor << endl;
    cout << "Erscheinungsjahr..." << buecherschrank[aktuelle_buecher].E_jahr << endl;
    cout << "Preis.............." << buecherschrank[aktuelle_buecher].preis << endl;
    cout << "Verlag............." << buecherschrank[aktuelle_buecher].verlag << endl;
    cout << "--------------------------------------" << endl << endl;	
      }
    }
    //-----------------------------------------------------------------------------
    //buecher im Schrank sortieren
    void TitelSortieren(void)
    {
    bool tausch ;
    do
    tausch = false;
    for (aktuelle_buecher = 0; aktuelle_buecher < anzahl_buecher-1; ++aktuelle_buecher)
    {
    if (buecherschrank[aktuelle_buecher].titel > buecherschrank[aktuelle_buecher+1].titel)
    {
    // Variable nur für schleife
    //Speichern der Werte in einer Hilfsvariable (Dreieckstausch)	
    titel = buecherschrank[aktuelle_buecher].titel;
    autor = buecherschrank[aktuelle_buecher].autor;  
    E_jahr = buecherschrank[aktuelle_buecher].E_jahr; 
    verlag =	buecherschrank[aktuelle_buecher].verlag;
    preis = buecherschrank[aktuelle_buecher].preis;
    nummer =	buecherschrank[aktuelle_buecher].isbn;
    
    //Vertauschen der Strukturfelder
    buecherschrank[aktuelle_buecher].titel = buecherschrank[aktuelle_buecher+1].titel;
    buecherschrank[aktuelle_buecher].autor = buecherschrank[aktuelle_buecher+1].autor;
    buecherschrank[aktuelle_buecher].E_jahr = buecherschrank[aktuelle_buecher+1].E_jahr;
    buecherschrank[aktuelle_buecher].verlag = buecherschrank[aktuelle_buecher+1].verlag;
    buecherschrank[aktuelle_buecher].preis = buecherschrank[aktuelle_buecher+1].preis;
    buecherschrank[aktuelle_buecher].isbn = buecherschrank[aktuelle_buecher+1].isbn;
    
    //Zürückschreiben der alten Werte aus den Hilfsvariablen in den Bücherschrank
    buecherschrank[aktuelle_buecher+1].titel	= titel;
    buecherschrank[aktuelle_buecher+1].autor	= autor;
    buecherschrank[aktuelle_buecher+1].E_jahr	= E_jahr;
    buecherschrank[aktuelle_buecher+1].verlag     = verlag;
    buecherschrank[aktuelle_buecher+1].preis	= preis;
    buecherschrank[aktuelle_buecher+1].isbn	= nummer;
    
    tausch = true;
                }
            }
        }
        while (tausch);
    }
    //----------------------------------------------------------------------------
    void AutorSuchen(void)
    {
    cout << "Bitte geben Sie den Nachnamen des Autors ein, den Sie suchen : ";
    cin >> Such_Autor;
    
    bool such = false;
    for (aktuelle_buecher=0; aktuelle_buecher <= anzahl_buecher;)
    {
    if(buecherschrank[aktuelle_buecher].autor == Such_Autor)
    {
    such = true;
    break;
    }
    else
    aktuelle_buecher++;
    }
    if (such == false)
    {
    cout << "Der Autor "<< Such_Autor << " wurde gefunden"<<endl;
    cout<<endl;
    }
    else 
    cout << "Der Autor " << autor <<" wurde nicht gefunden !";
    menueAufruf();
    }
    //-----------------------------------------------------------------------------
    //Menue Aufruf
    
    void menueAufruf(void)
    {
    cout << "    *****************************************************************" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                     Herzlich Willkommen                       *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *	             Ihre Auswahlmoeglichkeiten:                    *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                1.Buecher   <Anlegen>                          *" << endl;
    cout << "    *                2.Buecher   <Speichern>                        *" << endl;
    cout << "    *                3.Buecher   <Laden>                            *" << endl;
    cout << "    *                4.Autor     <Suchen>                           *" << endl;
    cout << "    *                5.Programm  <Ende>                             *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *****************************************************************" << endl;
    cout<<endl<<endl;
    cout << " Ihre Auswahl: ";
    cin >> eingabe_m;
    
      switch(eingabe_m)
      {
      case 1	:	BuecherAnlegen(); break;
      case 2	:	BuecherSpeichern();break;
      case 3	:	BuecherLaden(); break;
      case 4    :   AutorSuchen(); break;
      case 5	:	cout << "Das Programm wird beendet!";
    		    cout <<endl<<endl;		
      }
    }
    //-----------------------------------------------------------------------------
    bool openForReading(ifstream & s, string filename)
    {
        s.clear();
        s.open(filename.c_str());
        return s;
    }
    //-----------------------------------------------------------------------------
    void noMoreReading(ifstream & s)
    {
        s.close();
    }
    //-----------------------------------------------------------------------------
    bool openForWriting(ofstream & s, string filename)
    {
        s.clear();
        s.open(filename.c_str());
        return s;
    }
    //-----------------------------------------------------------------------------
    void noMoreWriting(ofstream & s)
    {
        s.close();
    }
    //-----------------------------------------------------------------------------
    void ProgrammeEnde(void)
    {
       cout << "Programm Ende"; 
    }
    
    //-----------------------------------------------------------------------------
    void BuecherLaden(void)
    { // Dateinamen lesen und Datei öffnen
    while(cout << endl << "Dateiname: ", cin >> dateiname, !openForReading(strom, dateiname))
    {
    cout << "Datei " << dateiname << " kann nicht geoeffnet werden." << endl;
    };
    aktuelle_buecher=0;
    while (strom >> nummer)
    {
    eingabe = "";
    ausgabe = ""; 
    while(strom >> eingabe && eingabe != "***")
    {
    ausgabe += (eingabe += " ") ;       
    buecherschrank[aktuelle_buecher].titel= ausgabe;break;			
    while(strom >> eingabe && eingabe != "***")
    {
    ausgabe += (eingabe += " ") ;           
    buecherschrank[aktuelle_buecher].autor = ausgabe;break;
    while(strom >> eingabe && eingabe != "***")
    {
    ausgabe += (eingabe += " ") ;            
    buecherschrank[aktuelle_buecher].E_jahr = ausgabe;break;
    while(strom >> eingabe && eingabe != "***")			  	    
    {
    ausgabe += (eingabe += " ") ;             	            		 buecherschrank[aktuelle_buecher].verlag = ausgabe;break;
    while(strom >> eingabe && eingabe != "***")
    {
    ausgabe += (eingabe += " ") ;            
    buecherschrank[aktuelle_buecher].preis = ausgabe;break;
    while(strom >> eingabe && eingabe != "***")
    {
    ausgabe += (eingabe += " ") ;       	     			         buecherschrank[aktuelle_buecher].isbn = ausgabe;break;
    }}}}}}
    aktuelle_buecher++;        
    }		
    anzahl_buecher = aktuelle_buecher;				  	
    cout << "Es wurde(n) " << anzahl_buecher << " Buch(Buecher) eingelesen." << endl << endl;
    BuecherAusgeben();
    noMoreReading(strom);
    menueAufruf();
    }
    //-----------------------------------------------------------------------------
    void BuecherSpeichern(void)
    {
    //Schleife  Bücher zu speichern.
    cout << endl;
    cout << "Dateiname angeben: " ;
    cin >> dateiname; 
    openForWriting(schreiben, dateiname);
    
    for(aktuelle_buecher = 0; aktuelle_buecher < anzahl_buecher;  
    aktuelle_buecher++ )
    {
    
    schreiben	
    << "Buch Nr." << aktuelle_buecher + 1 << endl
    << "----------------------------------------------" << endl
    << "Titel: " << buecherschrank[aktuelle_buecher].titel	<< "***" << endl
    << "Autor: " <<buecherschrank[aktuelle_buecher].autor	<< "***" << endl
    << "Erscheinungsjahr: " << buecherschrank[aktuelle_buecher].E_jahr<< "***" << endl
    << "Verlag: " << buecherschrank[aktuelle_buecher].verlag << "***" << endl
    << "Preis: " << buecherschrank[aktuelle_buecher].preis	<< "***" << endl
    << "ISBN-Nummer: " << buecherschrank[aktuelle_buecher].isbn << endl << endl;
    }
    noMoreWriting(schreiben);
    cout<<"fertig"<<endl<<endl;	
    }
    //------------------------------------------------------------------
    //------------------------------------------------------------------
    // menue.cpp
    
    #include <iostream>
    #include <string>
    #include <iomanip>
    #include <fstream>
    
    using namespace std;
    
    #include "textfiles.h"
    
    int main()
    {
    
    cout << "    *****************************************************************" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                     Herzlich Willkommen                       *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *	             Ihre Auswahlmoeglichkeiten:                    *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                1.Buecher   <Anlegen>                          *" << endl;
    cout << "    *                2.Buecher   <Speichern>                        *" << endl;
    cout << "    *                3.Buecher   <Laden>                            *" << endl;
    cout << "    *                4.Autor     <Suchen>                           *" << endl;
    cout << "    *                5.Programm  <Ende>                             *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *                                                               *" << endl;
    cout << "    *****************************************************************" << endl;
    cout <<endl<<endl;	
    
    int eingabe_m;
    cout << "Eingabe: ";
    cin >> eingabe_m;
    
    switch(eingabe_m)
    {
    case 1	:	BuecherAnlegen(); break;
    case 2	:	BuecherSpeichern();break;
    case 3	:	BuecherLaden(); break;
    case 4  :   AutorSuchen(); break;
    case 5	:	cout << "Das Programm wird beendet!";
    		    cout <<endl<<endl;		
    }
    return 0;
    }
    //---------------------------------------------------------------------
    //---------------------------------------------------------------------
    // Schnittstellendatei des Moduls 'textfiles.h'
    
    bool openForReading(ifstream & s, string filename);
    //-----------------------------------------------------------------------------void noMoreReading(ifstream & s);
    //-----------------------------------------------------------------------------
    bool openForWriting(ofstream & s, string filename);
    //-----------------------------------------------------------------------------void noMoreWriting(ofstream & s);
    //-----------------------------------------------------------------------------
    // Datei einlesen
    void BuecherAnlegen(void);
    //-----------------------------------------------------------------------------
    //Bücher im Schrank nach Titel sortieren
    void TitelSortieren(void);
    //-----------------------------------------------------------------------------
    //Bücher im Schrank nach Autor suchen
    void AutorSuchen(void);
    //-----------------------------------------------------------------------------
    //Menü aufrufen
    void menueAufruf(void);
    //-----------------------------------------------------------------------------
    void BuecherSpeichern(void);
    void BuecherLaden(void);	
    void ProgrammeEnde(void);
    void BuecherAusgeben(void);
    

Anmelden zum Antworten