<?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: stringstream.str( String )]]></title><description><![CDATA[<p>Hi,</p>
<p>ich moechte eine formatierte eingabe mit den stringstream realisieren.</p>
<p>Jetzt hab ich folgenden Fall:</p>
<pre><code class="language-cpp">void Request::DataAsString( tstringstream&amp; ss,const DataMap&amp; Map) const
{
		DataMap::const_iterator iter = Map.begin();
		TCHAR AssigmentChar = _T('=');
		TCHAR DelimiterChar = _T('&amp;');

		for( ; iter != Map.end(); iter++)
		{
			#ifdef UNICODE
			std::wstring Name = ConvertStr( url::Encode( iter-&gt;first) );
			std::wstring Value = ConvertStr( url::Encode( iter-&gt;second) );
			#else
			std::string Name = URLEncode( iter-&gt;first) ;
			std::string Value = URLEncode( iter-&gt;second) ;
			#endif

			ss &lt;&lt; Name &lt;&lt; AssigmentChar &lt;&lt; Value &lt;&lt; DelimiterChar;
		}

		tstring Tmp = ss.str();
		Tmp = Tmp.substr(0, Tmp.length()-1);
		ss.str( Tmp );
}
</code></pre>
<p>Da ja jetzt am ende ein Delimiter zu viel da ist hab ich mir gedacht ich hol mir das String Object aus dem ss, entferne das letzte Zeichen und setzte es wieder mit: ss.str( Tmp );</p>
<p>Das Problem dabei ist jetzt, wenn ich erneute eine Eingabe mit: ss &lt;&lt; .. versuche faengt er wieder am Anfang an einzufuegen.</p>
<p>Bspl:</p>
<pre><code class="language-cpp">DataAsString( ss, DataMap);
/* aktuell in ss: &quot;?test=1&amp;id=6&quot; */
ss &lt;&lt; _T(&quot; &quot;);
/* jetzt in ss: &quot; test=1&amp;id=6*/
</code></pre>
<p>Aber ich moechte ja weiter am Ende einfuegen</p>
<p>Muss ich jetzt jedes mal:</p>
<pre><code class="language-cpp">ss.seekp( std::io_base::end);
</code></pre>
<p>nach einem ss.str( Stirng) aufrufen?</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289461/problem-mit-stringstream-str-string</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 09:11:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289461.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Jul 2011 13:09:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit: stringstream.str( String ) on Tue, 05 Jul 2011 13:09:56 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich moechte eine formatierte eingabe mit den stringstream realisieren.</p>
<p>Jetzt hab ich folgenden Fall:</p>
<pre><code class="language-cpp">void Request::DataAsString( tstringstream&amp; ss,const DataMap&amp; Map) const
{
		DataMap::const_iterator iter = Map.begin();
		TCHAR AssigmentChar = _T('=');
		TCHAR DelimiterChar = _T('&amp;');

		for( ; iter != Map.end(); iter++)
		{
			#ifdef UNICODE
			std::wstring Name = ConvertStr( url::Encode( iter-&gt;first) );
			std::wstring Value = ConvertStr( url::Encode( iter-&gt;second) );
			#else
			std::string Name = URLEncode( iter-&gt;first) ;
			std::string Value = URLEncode( iter-&gt;second) ;
			#endif

			ss &lt;&lt; Name &lt;&lt; AssigmentChar &lt;&lt; Value &lt;&lt; DelimiterChar;
		}

		tstring Tmp = ss.str();
		Tmp = Tmp.substr(0, Tmp.length()-1);
		ss.str( Tmp );
}
</code></pre>
<p>Da ja jetzt am ende ein Delimiter zu viel da ist hab ich mir gedacht ich hol mir das String Object aus dem ss, entferne das letzte Zeichen und setzte es wieder mit: ss.str( Tmp );</p>
<p>Das Problem dabei ist jetzt, wenn ich erneute eine Eingabe mit: ss &lt;&lt; .. versuche faengt er wieder am Anfang an einzufuegen.</p>
<p>Bspl:</p>
<pre><code class="language-cpp">DataAsString( ss, DataMap);
/* aktuell in ss: &quot;?test=1&amp;id=6&quot; */
ss &lt;&lt; _T(&quot; &quot;);
/* jetzt in ss: &quot; test=1&amp;id=6*/
</code></pre>
<p>Aber ich moechte ja weiter am Ende einfuegen</p>
<p>Muss ich jetzt jedes mal:</p>
<pre><code class="language-cpp">ss.seekp( std::io_base::end);
</code></pre>
<p>nach einem ss.str( Stirng) aufrufen?</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089094</guid><dc:creator><![CDATA[stuxn]]></dc:creator><pubDate>Tue, 05 Jul 2011 13:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit: stringstream.str( String ) on Tue, 05 Jul 2011 13:26:39 GMT]]></title><description><![CDATA[<p>Prüf´ doch einfach im Schleifenrumpf, ob iter == begin() ist, wenn ja fügst du kein Trennzeichen ein, wenn doch fügst du eins ein. Allerdings gestaltet sich die Logig dabei etwas anders, du schreibst das Trennzeichen nicht nach einer Zeile, sondern davor.</p>
<pre><code class="language-cpp">void Request::DataAsString( tstringstream&amp; ss,const DataMap&amp; Map) const
{
   TCHAR AssigmentChar = _T('=');
   TCHAR DelimiterChar = _T('&amp;');

   for( DataMap::const_iterator iter = Map.begin(); iter != Map.end(); iter++)
   {
      #ifdef UNICODE
      std::wstring Name = ConvertStr( url::Encode( iter-&gt;first) );
      std::wstring Value = ConvertStr( url::Encode( iter-&gt;second) );
      #else
      std::string Name = URLEncode( iter-&gt;first) ;
      std::string Value = URLEncode( iter-&gt;second) ;
      #endif

      if( iter != Map.begin() )
      {
         // es steht bereits mind. ein Element im Strom, vor dem Schreiben
         // des nächsten Elements muss also das Trennzeichen geschrieben werden
         ss &lt;&lt; DelimiterChar;
      }
      // Element schreiben
      ss &lt;&lt; Name &lt;&lt; AssigmentChar;
   }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2089101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089101</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Tue, 05 Jul 2011 13:26:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit: stringstream.str( String ) on Tue, 05 Jul 2011 19:30:08 GMT]]></title><description><![CDATA[<p>Hmm genau da bin ich jetzt im ersten Moment gar ned drauf kommen. Hab das jettz au so gemacht.</p>
<p>Jetzt waere aber noch die Frage ob dieses Verhalten des stringstreams so gewollt ist?</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089272</guid><dc:creator><![CDATA[stuxn]]></dc:creator><pubDate>Tue, 05 Jul 2011 19:30:08 GMT</pubDate></item></channel></rss>