Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Dateiausgabe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.04.2005, 18:36 Uhr
~Manuela
Gast


Guten Tag,

ein Array von Klassenobjekten soll in ine Datei ausgelesen werden.
Nach dem Auslesen des 1. Datensatzes kommt die Fehlermeldung:
Unbehandelte Ausnahme in classarray.exe: 0xc0000005: Access Violation.

Kann es sein, das die Vorgehensweise grundsätzlich falsch ist,
der Methode exportieren das Ausgabeobjekt zu übergeben?

Ich bin dankbar für jede Anregung.

Gruss Manu

C++:
#include <iostream>
#include <sstream>
#include <fstream>
#include <cstdlib>    

using namespace std;

class ClaTitelsatz
{
    private:
        string strAUT;
        string strJAH;
        string strTIT;
    public:
        void einlesen();    
        void ausgeben();
        void exportieren(ofstream);    // ??
};

int main()
{
    int intAnz = 10;
    // Datensatzarray entsprechender Grösse dynamisch anlegen.
    class ClaTitelsatz * arrDaten = new ClaTitelsatz[intAnz];

    for (int i = 0; i < intAnz; i++)
        arrDaten[i].einlesen();

    for (int j = 0; j < intAnz; j++)
        arrDaten[j].ausgeben();

    // Hier kommt die Problemzone --------------------------
    // Die Datensätze im neuen Format exportieren.
    char chrZielDatei[] = "zieldaten.txt";

    // Ausgabeobjekt erzeugen.
    ofstream ausgabe(chrZielDatei, ios_base::out);

    // Der 2. Datensatz wird nicht mehr in die Datei geschrieben???
    for (int k = 1; k < intAnz; k++)
        arrDaten[k].exportieren(ausgabe);
    
    // Die Datei schliessen.
    ausgabe.close();

    return 0;
}

void ClaTitelsatz::exportieren(ofstream ausgabe)
{
    ausgabe << strAUT << endl;
    ausgabe << strTIT << endl;
    ausgabe << strJAH << endl << endl;;
}

void ClaTitelsatz::einlesen()
{
    strAUT = "Autor";
    strJAH = "2005";
    strTIT = "C++";
}

void ClaTitelsatz::ausgeben()
{
    cout << "Autor: " << strAUT << endl;
    cout << "Titel: " << strTIT << endl;
    cout << "Jahr : "<< strJAH << endl << endl;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.04.2005, 18:49 Uhr
Oliver
S2-Pixelgeneral


Übergib ausgabe mal als Referenz:


C++:
void exportieren(ofstream&);




C++:
void ClaTitelsatz::exportieren(ofstream& ausgabe)


--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 08.04.2005 um 18:50 Uhr von Oliver editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.04.2005, 20:03 Uhr
~Manuela
Gast


Läuft, wie geschmiert.
DANKE!

Gruss Manu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: