<?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[Problem mit map]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Habe da ein Problem mit einer map bzw. genauer gesagt dem Umwandeln ihrer Werte von String nach Integer. Habe bereits die FAQ gelesen und auch alles proboiert, komme aber trotzdem nicht weiter.</p>
<p>So sieht die Map aus (wie hier im Forum schon beschrieben:</p>
<pre><code class="language-cpp">//config.h
static std::map&lt;std::string, std::string&gt;  Values;
</code></pre>
<p>Nun moechte ich die Werte der Schluessel in Integer konvertieren;</p>
<pre><code class="language-cpp">const char* Apu = Values[&quot;ApuState&quot;];
int Electric::ApuState = atoi(Apu);
</code></pre>
<p>Leider funktioniert das nicht, hier der Compiler-Error:</p>
<pre><code>h:\users\sven\documents\visual studio 2005\projects\teamtripleseven\tts_b777_gau\electric.cpp(8) :
 error C2440: 'initializing' : cannot convert from 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;' to 'const char *'
        with
        [
            _Elem=char,
            _Traits=std::char_traits&lt;char&gt;,
            _Ax=std::allocator&lt;char&gt;
        ]
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
</code></pre>
<p>Habe auch die anderen Varianten (stringstream etc.) probiert, alle mit dem gleichen Ergebnis. Bin noch ein echter Newbie und waere fuer Hilfe dankbar.</p>
<p>Benutze Visual C++ 2005 Express</p>
<p>Viele Gruesse<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178232/problem-mit-map</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 18:19:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178232.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Apr 2007 12:38:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 12:39:48 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Habe da ein Problem mit einer map bzw. genauer gesagt dem Umwandeln ihrer Werte von String nach Integer. Habe bereits die FAQ gelesen und auch alles proboiert, komme aber trotzdem nicht weiter.</p>
<p>So sieht die Map aus (wie hier im Forum schon beschrieben:</p>
<pre><code class="language-cpp">//config.h
static std::map&lt;std::string, std::string&gt;  Values;
</code></pre>
<p>Nun moechte ich die Werte der Schluessel in Integer konvertieren;</p>
<pre><code class="language-cpp">const char* Apu = Values[&quot;ApuState&quot;];
int Electric::ApuState = atoi(Apu);
</code></pre>
<p>Leider funktioniert das nicht, hier der Compiler-Error:</p>
<pre><code>h:\users\sven\documents\visual studio 2005\projects\teamtripleseven\tts_b777_gau\electric.cpp(8) :
 error C2440: 'initializing' : cannot convert from 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;' to 'const char *'
        with
        [
            _Elem=char,
            _Traits=std::char_traits&lt;char&gt;,
            _Ax=std::allocator&lt;char&gt;
        ]
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
</code></pre>
<p>Habe auch die anderen Varianten (stringstream etc.) probiert, alle mit dem gleichen Ergebnis. Bin noch ein echter Newbie und waere fuer Hilfe dankbar.</p>
<p>Benutze Visual C++ 2005 Express</p>
<p>Viele Gruesse<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262219</guid><dc:creator><![CDATA[schwudde]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:39:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 12:42:18 GMT]]></title><description><![CDATA[<p>Wenn da auch wirklich immer ein int drin steht, könntest du ja gleich eine std::map&lt;std::string, int&gt; nehmen?!</p>
<p>Naja du suchst auf jeden Fall für dein Problem den FAQ-Beitrag &quot;einmal von Zahl nach String und zurück&quot;.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262224</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 12:43:16 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">const char* Apu = Values[&quot;ApuState&quot;].c_str();
int Electric::ApuState = atoi(Apu);
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1262225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262225</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 12:51:00 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/201">@SideWinder</a>,</p>
<p>gleich map&lt;string, int&gt; geht nicht da ich die Schluesselpaare aus einer Textdatei auslese. Und Den FAQ-Bereich hatte ich ja durchgearbeitet (daher wusste ich ueberhaupt von der Funktion).</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5021">@Konrad</a>,</p>
<p>Vielen Dank :-). Wenn Du bzw. jemand anderes mir noch erklaeren warum dieses &quot;.cstr()&quot; dahinterstehen muss waere ich uebergluecklich. Mit den MSDN-Docs tu ich mich in einigen Sachen noch recht schwer.</p>
<p>Viele Gruesse<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262234</guid><dc:creator><![CDATA[schwudde]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 12:57:27 GMT]]></title><description><![CDATA[<p>schwudde schrieb:</p>
<blockquote>
<p>Wenn Du bzw. jemand anderes mir noch erklaeren warum dieses &quot;.cstr()&quot; dahinterstehen muss waere ich uebergluecklich.</p>
</blockquote>
<p>Du willst ein 'const char <em>' haben, in der map sind aber 'std::string'-Objekte gespeichert. Man kann zwar 'const char</em>' implizit in 'std::string' konvertieren aber umgekehrt geht es eben nicht. Dafür stellt 'std::string' aber die Methode 'c_str' bereit, welche einen Zeiger auf die Zeichenkette als 'const char*' zurückgibt -- genau das, was wir hier brauchen.</p>
<p>-- allerdings bevorzuge ich in C++ Stringstreams zum Konvertieren zwischen Zahlen und Text. 'atoi' klappt zwar aber die Ensprechung 'itoa' hat jede Menge Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262237</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:57:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 12:59:17 GMT]]></title><description><![CDATA[<p>Würde zwar auch Stringstreams als &quot;C++-Way&quot; bevorzugen, aber welche Probleme hat itoa?</p>
<p>BTW: Der Hammer ist natürlich boost::lexical_cast</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262241</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:59:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 13:06:46 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Würde zwar auch Stringstreams als &quot;C++-Way&quot; bevorzugen, aber welche Probleme hat itoa?</p>
</blockquote>
<p>Man muss dafür sorgen, dass der Puffer ausreichend groß ist. Das ist für jeden übersichtlichen Quelltext ein *enormes* Problem. Gerade hier ist C++' Stärke doch, solche Verwaltungscodes zuverstecken. Wenn man mit 'itoa' arbeitet, ist es nicht möglich, den Verwaltungscode zu verstecken.</p>
<blockquote>
<p>BTW: Der Hammer ist natürlich boost::lexical_cast</p>
</blockquote>
<p>Ja. Aber das ist ja auch nur ein stringstream mit zwei zusätzlichen Tests um sicherzustellen, dass die gesamte Eingabe angenommen und verwertet wurde. Außerdem gefällt mir die Architektur eines lexikalischen Cast eigentlich nicht, denn es wird hier so getan, als seien Quelle und Ziel &quot;gleiche&quot; Parter, die nur über einen Interpreter ineinander umgewandelt werden. Ich halte diese Interpretation für fragwürdig. Ich finde es sinnvoller, von einem int (oder was auch auch immer) als &quot;Wert&quot; zu denken und von der entsprechenden String-Interpretation eben als &quot;Interpretation&quot; bzw. &quot;Repräsentation&quot;. Das wird durch 'lexical_cast' nicht ausgedrückt. Hier finde ich Haskells 'Show'-Semantik besser.</p>
<p>(Ja, mir ist bewusst, dass das total OT ist aber für solche Diskussionen sind Boards doch da.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262249</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 09 Apr 2007 13:06:46 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Mon, 09 Apr 2007 13:15:24 GMT]]></title><description><![CDATA[<p>Vielen Dank fuer die Antworten. Jetzt ist mir wieder was klarer geworden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Viele Gruesse<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262258</guid><dc:creator><![CDATA[schwudde]]></dc:creator><pubDate>Mon, 09 Apr 2007 13:15:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Tue, 10 Apr 2007 06:18:01 GMT]]></title><description><![CDATA[<p>schwudde schrieb:</p>
<blockquote>
<p>gleich map&lt;string, int&gt; geht nicht da ich die Schluesselpaare aus einer Textdatei auslese.</p>
</blockquote>
<p>Da ist es vielleicht besser, den Wert direkt beim Einlesen in einen int umzuwandeln <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="😉"
    /> (bei jeder Verwendung erstmal atoi() aufzurufen kostet nur unnötig Rechenzeit)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262641</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Apr 2007 06:18:01 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit map on Tue, 10 Apr 2007 08:18:59 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>schwudde schrieb:</p>
<blockquote>
<p>gleich map&lt;string, int&gt; geht nicht da ich die Schluesselpaare aus einer Textdatei auslese.</p>
</blockquote>
<p>Da ist es vielleicht besser, den Wert direkt beim Einlesen in einen int umzuwandeln ;)...</p>
</blockquote>
<p>Zumal man evtl. schon bei der Eingabe wissen möchte, dass man eine falsche Eingabe gemacht hat. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Für mich einer der großen Vorteile von den IStreams gegenüber atoi(): Eine falsche Eingabe fällt direkt auf - atoi() liefert einfach 0 ... und dann muß man sich überlegen, ob wirklich einen 0 gemeint war, oder &quot;Hugo&quot; eingegeben wurde.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262696</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 10 Apr 2007 08:18:59 GMT</pubDate></item></channel></rss>