<?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[Int aus String in Liste kopieren]]></title><description><![CDATA[<p>Nabend Community,<br />
ich bin noch Anfänger und probier mich gerade an einem Konsolenrechner der folgendermaßen aussehen soll:</p>
<blockquote>
<p>Eingabe: 23+5+7<br />
Zahl: 23<br />
Zahl: 5<br />
Zahl: 7<br />
Loesung: 35</p>
</blockquote>
<p>Ich hab jetzt die Eingabevariable als string deklariert, die Plus Position abgefragt und in eine Liste geschoben und dann kommt das Problem, wie kann ich aus dem String die Zahlen herauslesen?<br />
Ich hab mir das so ungefähr vorgestellt:</p>
<pre><code>eingabe.copy(zahl, laenge, pos);
lZahlen.push_back(zahl);
</code></pre>
<p>Nur muss bei dem copy Befehl ein Char Array als Ziel gewählt werden, aber ich kann ya keine Liste als Char Array definieren?!?</p>
<p>Ich sitz grad aufm Schlauch, es hat einmal geklappt wenigstens eine Zahl auszulesen, aber danach is dann das Programm abgestürzt &lt;.&lt;.<br />
Ich komm einfach nicht darauf wie ich den String vernünftig auslese <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="😕"
    /><br />
Und sollte ich statt ner Liste lieber Vektor nehmen?</p>
<p>Freue mich auf jede Hilfe und Denkanstoß! ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308971/int-aus-string-in-liste-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 13:02:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308971.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Oct 2012 18:42:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Wed, 10 Oct 2012 19:35:43 GMT]]></title><description><![CDATA[<p>Nabend Community,<br />
ich bin noch Anfänger und probier mich gerade an einem Konsolenrechner der folgendermaßen aussehen soll:</p>
<blockquote>
<p>Eingabe: 23+5+7<br />
Zahl: 23<br />
Zahl: 5<br />
Zahl: 7<br />
Loesung: 35</p>
</blockquote>
<p>Ich hab jetzt die Eingabevariable als string deklariert, die Plus Position abgefragt und in eine Liste geschoben und dann kommt das Problem, wie kann ich aus dem String die Zahlen herauslesen?<br />
Ich hab mir das so ungefähr vorgestellt:</p>
<pre><code>eingabe.copy(zahl, laenge, pos);
lZahlen.push_back(zahl);
</code></pre>
<p>Nur muss bei dem copy Befehl ein Char Array als Ziel gewählt werden, aber ich kann ya keine Liste als Char Array definieren?!?</p>
<p>Ich sitz grad aufm Schlauch, es hat einmal geklappt wenigstens eine Zahl auszulesen, aber danach is dann das Programm abgestürzt &lt;.&lt;.<br />
Ich komm einfach nicht darauf wie ich den String vernünftig auslese <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="😕"
    /><br />
Und sollte ich statt ner Liste lieber Vektor nehmen?</p>
<p>Freue mich auf jede Hilfe und Denkanstoß! ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2258980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2258980</guid><dc:creator><![CDATA[No0n3]]></dc:creator><pubDate>Wed, 10 Oct 2012 19:35:43 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Wed, 10 Oct 2012 18:55:23 GMT]]></title><description><![CDATA[<p>Ich verstehe dich nicht für einen Konsolenrechner warum benutzt du da nicht Integer Variablen ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2258985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2258985</guid><dc:creator><![CDATA[Fragensteller555]]></dc:creator><pubDate>Wed, 10 Oct 2012 18:55:23 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Wed, 10 Oct 2012 19:05:21 GMT]]></title><description><![CDATA[<p>Na, die einfachste Möglichkeit ist die folgende:</p>
<pre><code class="language-cpp">std::vector&lt;unsigned int&gt; vec(1);
while(std::cin &gt;&gt; vec.back() &amp;&amp; std::cin.ignore(1))
    vec.push_back(0);
</code></pre>
<p>Also zuerst eine Zahl und dann ein Zeichen extrahieren, wenn beides extrahiert werden konnte dann weitermachen, sonst aufhören.</p>
<p>Das ist aber sehr primitiv; wenn du das richtig durchziehen möchtest, dann bastle dir einen vernünftigen Lexer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2258990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2258990</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 10 Oct 2012 19:05:21 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Wed, 10 Oct 2012 19:29:51 GMT]]></title><description><![CDATA[<p>Fragensteller555 schrieb:</p>
<blockquote>
<p>Ich verstehe dich nicht für einen Konsolenrechner warum benutzt du da nicht Integer Variablen ??</p>
</blockquote>
<p>Weil &quot;123+456+78+9&quot; kein Integer ist. Ich will nicht alle Zahlen einzeln einlesen sondern den ganzen Term.</p>
<p>Sone schrieb:</p>
<blockquote>
<p>Das ist aber sehr primitiv; wenn du das richtig durchziehen möchtest, dann bastle dir einen vernünftigen Lexer.</p>
</blockquote>
<p>Leider sagt mir Lexer nichts ^^</p>
<p>Und müsste man bei</p>
<pre><code class="language-cpp">std::vector&lt;unsigned int&gt; vec(1);
while(std::cin &gt;&gt; vec.back() &amp;&amp; std::cin.ignore(1))
    vec.push_back(0);
</code></pre>
<p>nicht mehrmals Bestätigen, also Enter drücken? (will ich nämlich vermeiden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259001</guid><dc:creator><![CDATA[No0n3]]></dc:creator><pubDate>Wed, 10 Oct 2012 19:29:51 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Wed, 10 Oct 2012 19:39:11 GMT]]></title><description><![CDATA[<p>No0n3 schrieb:</p>
<blockquote>
<p>Und müsste man bei</p>
<pre><code class="language-cpp">std::vector&lt;unsigned int&gt; vec(1);
while(std::cin &gt;&gt; vec.back() &amp;&amp; std::cin.ignore(1))
    vec.push_back(0);
</code></pre>
<p>nicht mehrmals Bestätigen, also Enter drücken? (will ich nämlich vermeiden)</p>
</blockquote>
<p>Oh, ja! Aber eigentlich selbe Geschichte, nur müsstest du dann einen String einlesen und dann statt <code>std::cin</code> einen Stringstream benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259005</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 10 Oct 2012 19:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Wed, 10 Oct 2012 19:58:16 GMT]]></title><description><![CDATA[<p>Hab grad die Referenz zu Stringstream angeschaut und es klingt nach nem guten Stichwort, ich versuch das dann morgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259008</guid><dc:creator><![CDATA[No0n3]]></dc:creator><pubDate>Wed, 10 Oct 2012 19:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Wed, 10 Oct 2012 20:09:01 GMT]]></title><description><![CDATA[<p>Du möchtest es vielleicht ungefähr so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
	vector&lt;int&gt; werte;
	vector&lt;char&gt; operatoren;

	string input;
	getline(cin, input);     //Eingabe lesen,

	stringstream ss(input);  //in einen Stream bugsieren

	char op;
	int wert;

	ss &gt;&gt; wert;              //Erste Zahl extrahieren und
	werte.push_back(wert);   //in den Vektor werte schieben

	while(ss &gt;&gt; op &amp;&amp; ss &gt;&gt; wert)  //solange wie möglich Operator und Zahl extrahieren
	{
		operatoren.push_back(op);   //und in die entsprechenden Vektoren schieben
		werte.push_back(wert);
	}

	//Testausgaben
	cout &lt;&lt; &quot;Werte:\n&quot;;
	for(size_t i = 0; i &lt; werte.size(); ++i)
		cout &lt;&lt; werte[i] &lt;&lt; '\n';

	cout &lt;&lt; &quot;Operatoren:\n&quot;;
	for(size_t i = 0; i &lt; operatoren.size(); ++i)
		cout &lt;&lt; operatoren[i] &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2259012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259012</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 10 Oct 2012 20:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Thu, 11 Oct 2012 12:30:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ss &gt;&gt; wert;              //Erste Zahl extrahieren und

    while(ss &gt;&gt; op &amp;&amp; ss &gt;&gt; wert)  //solange wie möglich Operator und Zahl extrahieren
    {
</code></pre>
<p>Woher weiß der Compiler, was er extrahieren soll? Is das einfach so fest geschrieben? (Also je nach dem wie man die Variable deklariert?)<br />
Und ist der &gt;&gt; Operator nicht auch zum Bits verschieben gemacht? Verwirrt mich gerade <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="😕"
    /><br />
Ich kenn den &gt;&gt; Operator eig. nur im Zusammenhang mit cin und cout und da hab ich mir vorgestellt er &quot;verschiebt&quot; den Stream dahin ^^</p>
<p>Edit: Aso, das wird nur abwechselnd extrahiert, stimmts? ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259177</guid><dc:creator><![CDATA[No0n3]]></dc:creator><pubDate>Thu, 11 Oct 2012 12:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Thu, 11 Oct 2012 12:17:58 GMT]]></title><description><![CDATA[<p>Nein, der operator&gt;&gt; lässt sich (wie viele andere Operatoren) überladen. Das wurde auch für die Stream-Klasse <code>istream</code> gemacht, so dass er einfach etwas extrahiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259182</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 11 Oct 2012 12:17:58 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Thu, 11 Oct 2012 12:25:00 GMT]]></title><description><![CDATA[<p>Guckst Du <a href="http://www.c-plusplus.net/forum/p1642138" rel="nofollow">hier</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259184</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Thu, 11 Oct 2012 12:25:00 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Thu, 11 Oct 2012 12:48:04 GMT]]></title><description><![CDATA[<p>Werner_logoff schrieb:</p>
<blockquote>
<p>Guckst Du <a href="http://www.c-plusplus.net/forum/p1642138" rel="nofollow">hier</a></p>
</blockquote>
<p>Hmm, interessant. Ich hätte das anders gelöst, und zwar mit einem Lexer und einem Parser, der höher bindende Operatoren zuerst auswertet und das Ergebnis im Token-Array ersetzt.</p>
<p>Leider weiß ich überhaupt nicht wie sich so ein Parser nennt <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="😕"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2259196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259196</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 11 Oct 2012 12:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Thu, 11 Oct 2012 19:57:43 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Ich hätte das anders gelöst, und zwar mit einem Lexer und einem Parser, der höher bindende Operatoren zuerst auswertet und das Ergebnis im Token-Array ersetzt.</p>
<p>Leider weiß ich überhaupt nicht wie sich so ein Parser nennt <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="😕"
    /> <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>
</blockquote>
<p>Wie das Ding'n heißt ist egal. Aber zeige doch mal, wie das funktioniert, aber bitte den Lexer mit std::istream als Input-Device.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259414</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 11 Oct 2012 19:57:43 GMT</pubDate></item><item><title><![CDATA[Reply to Int aus String in Liste kopieren on Thu, 11 Oct 2012 21:23:14 GMT]]></title><description><![CDATA[<p>Also Werner!<br />
Ein Auszug aus einem <strong>alten</strong> Projekt von mir, stell also keinerlei Ansprüche!<br />
Ich weiß dass das alles anders vereinfacht werden könnte. Darum geht es jetzt auch nicht.</p>
<pre><code class="language-cpp">boost::ptr_vector&lt;Object&gt; TermLexer::Parser::tokenizeTerm(std::istream&amp; is)
{
      boost::ptr_vector&lt;Object&gt; rval;
      size_t comma(0);
      bool parsingInt(false);
      Real::real_t current(0);

      char c;
      while(is.get(c) and c != '\n')
      {
            if(std::string(Operator::operatorChar).find(c) != std::string::npos)
            {
                  if(parsingInt)
                        rval.push_back(new Real(current));
                  rval.push_back(new Operator(fromChar(c)));
                  comma = current = parsingInt = 0;
            }
            else if(std::isdigit(c) || c == '.')
            {
                  if(c == '.')
                        ++comma;
                  else if(!parsingInt)
                        current = c - '0';
                  else if(!comma)
                        current = current * 10 + c - '0';
                  else
                        current += (c - '0') / (Real::real_t)std::pow(10, comma++);

                  parsingInt = true;
            }
            else if(c != ' ')///Skip When Space
                  throw Exceptions::parseException(&quot;Invalid Character in Term!&quot;);
      }

      if(parsingInt)
            rval.push_back(new Real(current));

      return rval;
}

Real::real_t TermLexer::Parser::solveTerm(boost::ptr_vector&lt;Object&gt; objects)
{
      #define Opiter(x) dynamic_cast&lt;Operator*&gt;(&amp;obj_iter[x])
      #define Realiter(x) dynamic_cast&lt;Real*&gt;(&amp;obj_iter[x])

      for(auto obj_iter(objects.begin());obj_iter != objects.end();++obj_iter)
            if(obj_iter-&gt;is(Object::type::Operator)
            &amp;&amp; Opiter(0)-&gt;mOperatorType == Operator::operator_type::openBrace)
            {
                  auto closeBraceiter = obj_iter + 1;
                  for(size_t ct(1);ct;++closeBraceiter)
                  {
                        if(closeBraceiter == objects.end())
                              throw parseException(&quot;An open brace wasn't closed!&quot;);
                        else if(closeBraceiter-&gt;is(Object::type::Operator))
                              switch(dynamic_cast&lt;Operator*&gt;(&amp;*closeBraceiter)-&gt;mOperatorType)
                              {
                                    case Operator::operator_type::closeBrace:
                                          --ct;
                                    break;

                                    case Operator::operator_type::openBrace:
                                          ++ct;
                                    break;

                                    default: break;
                              }
                  }

                  boost::ptr_vector&lt;Object&gt; braceEnclosedObjects(obj_iter + 1, closeBraceiter - 1);
                  Real::real_t res(solveTerm(braceEnclosedObjects));
                  auto before = obj_iter - 1;
                  objects.erase(obj_iter, closeBraceiter);
                  objects.insert(before + 1, new Real(res));
                  obj_iter = before;
            }

      auto computeUnaryOperators = [&amp;](std::map&lt;Operator::operator_type, std::function&lt;void(Real&amp;)&gt;&gt; processes)
      {
            for(auto obj_iter(objects.end());obj_iter != objects.begin();)
            {
                  --obj_iter;
                  for(auto pair : processes)
                        if(obj_iter[0].is(Object::type::Operator)
                        &amp;&amp; Opiter(0)-&gt;mOperatorType == pair.first)
                        {
                              if(obj_iter + 1 == objects.end()  ///If the operator is before the end of the vector, or the next element is another operator
                              || !obj_iter[1].is(Object::type::Real))
                                    throw parseException(&quot;An unary Operator must occur before a real number!&quot;);
                              else if(obj_iter == objects.begin()///If the object before isn't a Real, compute
                                   || obj_iter[-1].is(Object::type::Operator))
                              {
                                    pair.second(*Realiter(1));
                                    objects.erase(obj_iter);
                              }
                        }
            }
      };

      auto computeOperator = [&amp;](Operator::operator_type op_Type1, std::function&lt;void(Real&amp;, Real const&amp;)&gt; process1,
                                 Operator::operator_type op_Type2  = static_cast&lt;Operator::operator_type&gt;(-1), std::function&lt;void(Real&amp;, Real const&amp;)&gt; process2 = [](Real&amp;, Real const&amp;){})
      {
            for(auto obj_iter(objects.begin());obj_iter != objects.end();++obj_iter)
                  if(obj_iter-&gt;is(Object::type::Operator))
                  {
                        if(obj_iter + 1 == objects.end()
                        || !obj_iter[1].is(Object::type::Real)
                        || obj_iter == objects.begin()
                        || !obj_iter[-1].is(Object::type::Real))
                              throw parseException(&quot;Invalid use of binary operator!&quot;);

                        if(Opiter(0)-&gt;mOperatorType == op_Type1)
                              process1(*Realiter(-1), *Realiter(1));
                        else if(Opiter(0)-&gt;mOperatorType == op_Type2)
                              process2(*Realiter(-1), *Realiter(1));
                        else continue;

                        auto tmpiter = obj_iter - 1;
                        objects.erase(obj_iter + 1);
                        objects.erase(obj_iter);
                        obj_iter = tmpiter;
                  }
      };

      computeUnaryOperators({std::make_pair(Operator::operator_type::minus, [&amp;](Real&amp; r){r.mNumber = -r.mNumber;}),
                             std::make_pair(Operator::operator_type::plus, [&amp;](Real&amp;){}),
                             std::make_pair(Operator::operator_type::sine, [&amp;](Real&amp; r){r.mNumber = std::sin(TermLexer::Math::toRadian(r.mNumber));}),
                             std::make_pair(Operator::operator_type::cosine, [&amp;](Real&amp; r){r.mNumber = std::cos(TermLexer::Math::toRadian(r.mNumber));}),
                             std::make_pair(Operator::operator_type::tangent, [&amp;](Real&amp; r){r.mNumber = std::tan(TermLexer::Math::toRadian(r.mNumber));}),
                             std::make_pair(Operator::operator_type::sqrt, [&amp;](Real&amp; r){r.mNumber = std::sqrt(r.mNumber);})});

      computeOperator(Operator::power, [&amp;](Real&amp; r, Real const&amp; r2){r.mNumber = std::pow(r.mNumber, r2.mNumber);});

      computeOperator(Operator::multiply, [](Real&amp; r, Real const&amp; r2){r.mNumber *= r2.mNumber;},
                      Operator::divide, [](Real&amp; r, Real const&amp; r2)
                      {
                            if(!r2.mNumber)
                               throw std::logic_error(&quot;It is not allowed to divide by zero!&quot;);
                            r.mNumber /= r2.mNumber;
                      });

      computeOperator(Operator::plus, [](Real&amp; r, Real const&amp; r2){r.mNumber += r2.mNumber;},
                      Operator::minus,[](Real&amp; r, Real const&amp; r2){r.mNumber -= r2.mNumber;});

      auto front = dynamic_cast&lt;Real*&gt;(&amp;objects.front());

      if(!front)
            throw parseException(&quot;Unknown parse error occured!&quot;);

      return front-&gt;mNumber;
}
</code></pre>
<p>Auf eine Erklärung habe ich erst Morgen Früh Lust.<br />
Nur ganz kurz: Die beiden Token sind <code>Real</code> und <code>Operator</code> (also jeweils für Zahl und arithmetischen Operator), beide Kindklassen von Object, der abstrakten Basisklasse. Die erste Funktion oben ist der Lexer, die zweite der eigentliche semantische Parser. Der Rest dürfte sich vom Kontext erschließen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259436</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 11 Oct 2012 21:23:14 GMT</pubDate></item></channel></rss>