Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

29.08.2011, 20:35

fehlermeldung beim benutzen von fstream

hi ich bins mal wieder ^^

ich bekomme folgende fehlermeldung

Zitat

Eine Ausnahme (erste Chance) bei 0x5fd659da (msvcr100d.dll) in Pac Man.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x30303024.
Unbehandelte Ausnahme bei 0x774615ee in Pac Man.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x30303024.


ich bin der meinung das ich das mit dem fstream wie im Buch benutz habe, ... hier mal der code

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
void Map::LoadMapFile()
{
    string mapDataRow = "";

    ifstream input ("map.txt");

    input.read((char*) &mapDataRow, sizeof(mapDataRow));
    //cout << mapDataRow;
    input.close();
}


wieso? weshalb? warum? :/

jokester

Treue Seele

Beiträge: 125

Wohnort: Mainz

  • Private Nachricht senden

2

29.08.2011, 20:41

Weil das nur bei primitiven Datentypen klappt. Was in dieser Situation richtig wäre, kommt drauf an, was du vorhast. Hast du vorher einen String in der Datei gespeichert, den du nun wieder auslesen willst? Wie wurde der gespeichert? Beinhaltet der string leerzeichen? Oder möchtest du den gesamten Dateiinhalt in einem Buffer haben?
"There is a theory which states that if ever anyone discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory which states that this has already happened" -- Douglas Adams.

3

29.08.2011, 20:51

ich hab ganz normal eine txt datei erstellt und per hand ein paar 0en und 1en reingeschrieben dich ich auslesen und verarbeiten will

ich wollte immer zeile für zeile auslesen, tut das die read funktion so? oder liest sie alles komplett?

jokester

Treue Seele

Beiträge: 125

Wohnort: Mainz

  • Private Nachricht senden

4

29.08.2011, 21:02

Die read-funktion liest soviele Bytes wie du rauslesen willst.
Warum schreibst du eigentlich 0en und 1en da rein? So wirklich binär ist das dann nicht. Wenn "1001" z.b. in der Datei steht sind das 4 Bytes, jeweils mit den werten '1' und '0', die übrigens andere Werte darstellen als 1 und 0. (ohne die Hochkommata.)
Eine Zeile auslesen geht jedenfalls so:

C-/C++-Quelltext

1
std::getline(input, mapDataRow);
"There is a theory which states that if ever anyone discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory which states that this has already happened" -- Douglas Adams.

5

29.08.2011, 21:10

es geht mir nich direkt um die 0en und 1en, ich könnte auch andere zeichen nehmen
ich erstelle so meine map, für jede 1 zeichnet er einen Block aufs spielfeld und bei einer 0 halt nichts

und danke, damit funktionierts :)

Werbeanzeige