<?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[Config lesen]]></title><description><![CDATA[<p>Hi,<br />
Als Übung wollte ich einen Config Reader schreiben.<br />
Bin noch unerfahren in C++.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">char* config::get(char* var) {
this-&gt;read();
std::string buffer,buffer2;
std::string::size_type loc,loc2;
for(unsigned int i=1;i&lt;=line.size();i++) {
buffer = line[i-1];
loc = buffer.find_first_of('&quot;');
if(loc == std::string::npos) {
loc2 = buffer.find_last_of('&quot;',loc);
if(loc2 == std::string::npos || loc != loc2) {
buffer2 = buffer.substr(0,loc);
if(buffer2.length() != 0) {
 for(unsigned int i = 0;i &lt; buffer2.length();i++)
    {
     if (buffer2[i] ==' ')
     {
      buffer2.replace(i,1,&quot;&quot;);
     }
    }
    if(strcmp(var,buffer2.c_str()) == 0) {
buffer2 = buffer.substr(loc,loc2);
char* returnvalue = (char*)buffer2.c_str();
return returnvalue;
    }
}
}
}
}
return &quot;NULL&quot;;
}
</code></pre>
<p>Die Funktion Read macht nichts anderes als die Datei in den vector line einzulesen.<br />
Jedoch bekomme ich immer NULL zurück obwohl in der Datei steht:<br />
testvar &quot;123&quot;</p>
<p>Warum funktioniert das so nicht? <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/215714/config-lesen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 03:11:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/215714.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Jun 2008 13:06:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Config lesen on Sat, 14 Jun 2008 13:06:34 GMT]]></title><description><![CDATA[<p>Hi,<br />
Als Übung wollte ich einen Config Reader schreiben.<br />
Bin noch unerfahren in C++.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">char* config::get(char* var) {
this-&gt;read();
std::string buffer,buffer2;
std::string::size_type loc,loc2;
for(unsigned int i=1;i&lt;=line.size();i++) {
buffer = line[i-1];
loc = buffer.find_first_of('&quot;');
if(loc == std::string::npos) {
loc2 = buffer.find_last_of('&quot;',loc);
if(loc2 == std::string::npos || loc != loc2) {
buffer2 = buffer.substr(0,loc);
if(buffer2.length() != 0) {
 for(unsigned int i = 0;i &lt; buffer2.length();i++)
    {
     if (buffer2[i] ==' ')
     {
      buffer2.replace(i,1,&quot;&quot;);
     }
    }
    if(strcmp(var,buffer2.c_str()) == 0) {
buffer2 = buffer.substr(loc,loc2);
char* returnvalue = (char*)buffer2.c_str();
return returnvalue;
    }
}
}
}
}
return &quot;NULL&quot;;
}
</code></pre>
<p>Die Funktion Read macht nichts anderes als die Datei in den vector line einzulesen.<br />
Jedoch bekomme ich immer NULL zurück obwohl in der Datei steht:<br />
testvar &quot;123&quot;</p>
<p>Warum funktioniert das so nicht? <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1528957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1528957</guid><dc:creator><![CDATA[Config Reader]]></dc:creator><pubDate>Sat, 14 Jun 2008 13:06:34 GMT</pubDate></item><item><title><![CDATA[Reply to Config lesen on Sat, 14 Jun 2008 13:11:11 GMT]]></title><description><![CDATA[<p>rück das erstmal richtig ein. Den fehler hab ich jetz kein bock zu suchen, allerdings kann das so gar nicht klappen:</p>
<p>Du gibtst quasi buffer2.c_str() zurück. buffer2 ist aber nur in der funktion bekannt und wird nach dem aufruf zerstört, der char* zeigt also sonstwohin. Warum gibst du nicht std::string zurück und nimmst ein const std::string&amp; als parameter an?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1528965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1528965</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sat, 14 Jun 2008 13:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to Config lesen on Sat, 14 Jun 2008 13:25:03 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ist doch gut eingerückt^^</p>
<p>Der Wert wird doch noch zurückgegeben bevor er zerstört wird.<br />
Zerstört wird laut Lernbuch erst sobald die Klammer kommt und der wert wird ja bei return zurückgegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1528976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1528976</guid><dc:creator><![CDATA[Config Reader]]></dc:creator><pubDate>Sat, 14 Jun 2008 13:25:03 GMT</pubDate></item></channel></rss>