<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[map nach Füllfunktion leer]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>Seltsam, dass ich nach einer halben Stunde des Suchens immer noch nichts<br />
zu diesem Thema finden konnte. Ich mach wohl was falsch. xD</p>
<pre><code class="language-cpp">void LoadItems(string itemFile)
{
	// InputFileStream öffnen
	ifstream iStr(itemFile.c_str());

	GameItem tmpItem;
	string tmpStr;
	RECT tmpSrcRect;

	// Solange Ende der Datei nicht erreicht...
	while(!iStr.eof())
	{
		// [item]-Zeile lesen
		getline(iStr, tmpStr);
		// Namenszeile lesen
		getline(iStr, tmpStr);
		tmpItem.SetName(tmpStr);

		// SrcRect-Position lesen
		getline(iStr, tmpStr);
		sscanf_s(tmpStr.c_str(), &quot;%i,%i,%i,%i&quot;, &amp;tmpSrcRect.left, &amp;tmpSrcRect.top,
			&amp;tmpSrcRect.right, &amp;tmpSrcRect.bottom);

		// Erste action oder End-Tag lesen
		getline(iStr, tmpStr);

		while(tmpStr != &quot;[/item]&quot;)
		{
			// Actions zum Item hinzufügen
			tmpItem.AddAction(tmpStr);
			getline(iStr, tmpStr);
		}

		// Item zur item-map hinzufügen
		items[tmpItem.GetName()] = tmpItem;
	}

	// Stream schliessen
	iStr.close();
}
</code></pre>
<p>Folgendes: Diese Funktion liest Daten aus einem Itemfile<br />
und speichert die ganzen Items in einer map&lt;string, GameItem&gt;.</p>
<p>Seltsamerweise hat das gestern noch wunderbar geklappt, aber<br />
jetzt (ohne Änderung an diesem Code) nicht mehr.<br />
Nach dem Ende der Funktion ist die map wieder leer.<br />
Ist das, weil die in den Funktion erzeugt GameItems beim<br />
Ende gelöscht werden?<br />
Wenn ja: Wie könnte ich das Problem lösen?<br />
Ist alles global, auch die map.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218192/map-nach-füllfunktion-leer</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 19:35:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218192.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Jul 2008 08:17:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to map nach Füllfunktion leer on Thu, 17 Jul 2008 08:17:27 GMT]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>Seltsam, dass ich nach einer halben Stunde des Suchens immer noch nichts<br />
zu diesem Thema finden konnte. Ich mach wohl was falsch. xD</p>
<pre><code class="language-cpp">void LoadItems(string itemFile)
{
	// InputFileStream öffnen
	ifstream iStr(itemFile.c_str());

	GameItem tmpItem;
	string tmpStr;
	RECT tmpSrcRect;

	// Solange Ende der Datei nicht erreicht...
	while(!iStr.eof())
	{
		// [item]-Zeile lesen
		getline(iStr, tmpStr);
		// Namenszeile lesen
		getline(iStr, tmpStr);
		tmpItem.SetName(tmpStr);

		// SrcRect-Position lesen
		getline(iStr, tmpStr);
		sscanf_s(tmpStr.c_str(), &quot;%i,%i,%i,%i&quot;, &amp;tmpSrcRect.left, &amp;tmpSrcRect.top,
			&amp;tmpSrcRect.right, &amp;tmpSrcRect.bottom);

		// Erste action oder End-Tag lesen
		getline(iStr, tmpStr);

		while(tmpStr != &quot;[/item]&quot;)
		{
			// Actions zum Item hinzufügen
			tmpItem.AddAction(tmpStr);
			getline(iStr, tmpStr);
		}

		// Item zur item-map hinzufügen
		items[tmpItem.GetName()] = tmpItem;
	}

	// Stream schliessen
	iStr.close();
}
</code></pre>
<p>Folgendes: Diese Funktion liest Daten aus einem Itemfile<br />
und speichert die ganzen Items in einer map&lt;string, GameItem&gt;.</p>
<p>Seltsamerweise hat das gestern noch wunderbar geklappt, aber<br />
jetzt (ohne Änderung an diesem Code) nicht mehr.<br />
Nach dem Ende der Funktion ist die map wieder leer.<br />
Ist das, weil die in den Funktion erzeugt GameItems beim<br />
Ende gelöscht werden?<br />
Wenn ja: Wie könnte ich das Problem lösen?<br />
Ist alles global, auch die map.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548654</guid><dc:creator><![CDATA[Asmodiel]]></dc:creator><pubDate>Thu, 17 Jul 2008 08:17:27 GMT</pubDate></item><item><title><![CDATA[Reply to map nach Füllfunktion leer on Thu, 17 Jul 2008 08:36:21 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">void LoadItems(string itemFile)
{
// InputFileStream öffnen
ifstream iStr(itemFile.c_str());

GameItem tmpItem;
string tmpStr;
RECT tmpSrcRect;

// Solange Ende der Datei nicht erreicht...
while(!iStr.eof())
{
// [item]-Zeile lesen
getline(iStr, tmpStr);
// Namenszeile lesen
getline(iStr, tmpStr);
tmpItem.SetName(tmpStr);

// SrcRect-Position lesen
getline(iStr, tmpStr);
sscanf_s(tmpStr.c_str(), &quot;%i,%i,%i,%i&quot;, &amp;tmpSrcRect.left, &amp;tmpSrcRect.top,
&amp;tmpSrcRect.right, &amp;tmpSrcRect.bottom);

// Erste action oder End-Tag lesen
getline(iStr, tmpStr);

while(tmpStr != &quot;[item]&quot;) // / rausgenommen, weil sonst cppp-tags nicht funzen
{
// Actions zum Item hinzufügen
tmpItem.AddAction(tmpStr);
getline(iStr, tmpStr);
}

// Item zur item-map hinzufügen
items[tmpItem.GetName()] = tmpItem;
}

// Stream schliessen
iStr.close();
}
</code></pre>
</blockquote>
<p>Geh mal mit dem Debugger durch und schaue, ob er dir die Daten richtig in die map pusht.<br />
Wenn items eine globale Variable ist, dann sollte das nach dem Aufruf der Funktion eigentlich die Daten noch da sein. (prinzipiell).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548667</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 17 Jul 2008 08:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to map nach Füllfunktion leer on Thu, 17 Jul 2008 08:38:55 GMT]]></title><description><![CDATA[<p>Habe ich... Am Ende der Funktion ist die map gefüllt.<br />
Alles wunderbar... Nach dem Ende: leer.<br />
Eben müsste sie gefüllt sein, wenn sie global ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548668</guid><dc:creator><![CDATA[Asmodiel]]></dc:creator><pubDate>Thu, 17 Jul 2008 08:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to map nach Füllfunktion leer on Thu, 17 Jul 2008 09:06:35 GMT]]></title><description><![CDATA[<p>Ok, hat sich erledigt... War ein Fehler in der Reihenfolge.<br />
Sorry. -.- Verliere da ab und an mal die Übersicht.<br />
Trotzdem vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548676</guid><dc:creator><![CDATA[Asmodiel]]></dc:creator><pubDate>Thu, 17 Jul 2008 09:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to map nach Füllfunktion leer on Thu, 17 Jul 2008 09:24:20 GMT]]></title><description><![CDATA[<p>Wenn du ordentlich einrücken würdest hättest du etwas mehr Übersicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548694</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 17 Jul 2008 09:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to map nach Füllfunktion leer on Thu, 17 Jul 2008 11:02:36 GMT]]></title><description><![CDATA[<p>So viel Erfahrung habe ich dann auch noch. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Ist nur da vom Kopieren so seltsam eingerückt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548752</guid><dc:creator><![CDATA[Asmodiel]]></dc:creator><pubDate>Thu, 17 Jul 2008 11:02:36 GMT</pubDate></item></channel></rss>