<?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[sprintf in std::string]]></title><description><![CDATA[<p>Gibt es in C++ eine Möglichkeit für die Ausgabe wie mit sprintf / snprintf in einen std::string anstatt in ein char array?</p>
<p>Also geht das hier auch ohne den Umweg über das char array?</p>
<pre><code>unsigned char digest[16];

// digest is filled here

char temp[3] = {0};
std::string md5sum;

for(int i=0; i&lt;16; i++)
{
  snprintf(temp, 3, &quot;%02x&quot;, digest[i]);
  md5sum += temp;
}
</code></pre>
<p>Ich kenne nur noch std::to_string</p>
<p>aber damit bekomme ich nicht die hex formatierung...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/331818/sprintf-in-std-string</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 04:00:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331818.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Mar 2015 21:36:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sprintf in std::string on Sat, 21 Mar 2015 21:36:35 GMT]]></title><description><![CDATA[<p>Gibt es in C++ eine Möglichkeit für die Ausgabe wie mit sprintf / snprintf in einen std::string anstatt in ein char array?</p>
<p>Also geht das hier auch ohne den Umweg über das char array?</p>
<pre><code>unsigned char digest[16];

// digest is filled here

char temp[3] = {0};
std::string md5sum;

for(int i=0; i&lt;16; i++)
{
  snprintf(temp, 3, &quot;%02x&quot;, digest[i]);
  md5sum += temp;
}
</code></pre>
<p>Ich kenne nur noch std::to_string</p>
<p>aber damit bekomme ich nicht die hex formatierung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447571</guid><dc:creator><![CDATA[engitiny]]></dc:creator><pubDate>Sat, 21 Mar 2015 21:36:35 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf in std::string on Sat, 21 Mar 2015 21:42:42 GMT]]></title><description><![CDATA[<p>Man kann auch direkt in den <code>string</code> hineinformatieren. Man muss nur aufpassen, dass der die richtige Größe hat:</p>
<pre><code class="language-cpp">unsigned char digest[16];

// digest is filled here

std::string md5sum;
md5sum.resize(sizeof(digest) * 2);

for(int i=0; i&lt;16; i++)
{
  snprintf(&amp;md5sum[0] + (i * 2), 3, &quot;%02x&quot;, digest[i]);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2447572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447572</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Sat, 21 Mar 2015 21:42:42 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf in std::string on Sat, 21 Mar 2015 21:55:48 GMT]]></title><description><![CDATA[<p>Ah ok, danke.</p>
<p>Ob das jetzt eine schönere Lösung ist muss ich mir noch überlegen.<br />
<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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447573</guid><dc:creator><![CDATA[engitiny]]></dc:creator><pubDate>Sat, 21 Mar 2015 21:55:48 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf in std::string on Sat, 21 Mar 2015 22:37:43 GMT]]></title><description><![CDATA[<p>engitiny schrieb:</p>
<blockquote>
<p>[...] sprintf [...]</p>
</blockquote>
<p>brrrr. -schauder-</p>
<p>engitiny schrieb:</p>
<blockquote>
<p>Ich kenne nur noch std::to_string</p>
<p>aber damit bekomme ich nicht die hex formatierung...</p>
</blockquote>
<pre><code class="language-cpp">#include &lt;sstream&gt;
#include &lt;iostream&gt;
#include &lt;iomanip&gt;

int main()
{
	unsigned char digest[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };

	std::stringstream ss{};

	for( unsigned i = 0; i &lt; 16; ++i )
		ss &lt;&lt; std::setw( 2 ) &lt;&lt; std::setfill( '0' ) &lt;&lt; std::hex
		   &lt;&lt; static_cast&lt; unsigned &gt;( digest[ i ] );

	std::cout &lt;&lt; ss.str() &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2447574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447574</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sat, 21 Mar 2015 22:37:43 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf in std::string on Sun, 22 Mar 2015 11:42:11 GMT]]></title><description><![CDATA[<p>Danke Dir für die ausführliche Lösung Swordfish.</p>
<p>Bin noch nicht so lange bei C++ ... vorher nur C.<br />
Wieder was gelernt. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2447605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447605</guid><dc:creator><![CDATA[engitiny]]></dc:creator><pubDate>Sun, 22 Mar 2015 11:42:11 GMT</pubDate></item></channel></rss>