tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
308
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    hallo zusammen,

    ich würde gern ein Map in einer Datei abspeichern. Habt ihr eine Idee wie man das am besten in C++ macht? Ich habe mit ofstream probiert, bekomme aber einen Compilerfehler:
    error: no match for 'operator<<' in 'outmap << ((Myobject*)this)->Myobject::myMap'
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    ...
    ofstream outmap;
    ...
    outmap.open(filename.c_str(), ios::out|ios::trunc|ios::binary);
    if(outmap.good())
    {
        outmap.clear();
        outmap << myMap << endl;
        outmap.close();
    }

    Vielen Dank im voraus.

    Grüße July
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    du kannst nicht einfach irgendwas an ofstream übergeben.
    Was ist denn myMap für ein Variablentyp?
    Selbstgeschrieben oder nicht?
     

  3. #3
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    myMap ist ein selbstdefienierter Typ:
    typedef map<unsigned int, meldung_t> MyMap;
    MyMap mymap;
    *meldung_t ist eine Struktur.
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Also nicht selbstgeschrieben.

    Generell jedes Element durchlaufen und Key+Value einzeln in die Datei schreiben.
    meldung_t muss dabei auch in seine Einzelteile zerlegt werden (dabei auf Pointerzeug aufpassen).
    Wie ist denn meldung_t aufgebaut?
     

  5. #5
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    typedef struct{
        unsigned int msgId; // Message_id
        unsigned char melCode;
        kategorie_t kat;
        char loeschBereich;
        char gruppe;
        char melder;
        tMeldArt meldArt;
        char grText[50];
        DWORD timestamp;
    }meldung_t;
     

  6. #6
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo july,

    da du wirst über die map iterieren müssen und key und value einzelnn abspeichern. Solche komplexen Datenstrukturen verarbeitet ofstream nicht.

    Ansonsten müsstet du mit der boost-Bibliothek arbeiten. Die Serialisierungfunktionen von boost können auch STL-Container direkt schreiben und lesen.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

Ähnliche Themen

  1. Byte array in einer Datei abspeichern
    Von smokymcdope im Forum Java
    Antworten: 6
    Letzter Beitrag: 05.05.09, 21:15
  2. XML-Datei in DB abspeichern
    Von secret Burner im Forum .NET Datenverwaltung
    Antworten: 0
    Letzter Beitrag: 09.04.09, 10:01
  3. Antworten: 4
    Letzter Beitrag: 16.06.08, 11:07
  4. Datei aus dem Web abspeichern
    Von Sledia im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 18.02.08, 11:20
  5. in txt datei abspeichern
    Von aTa im Forum ASP
    Antworten: 5
    Letzter Beitrag: 04.09.03, 19:39

Stichworte