<?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[RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String?]]></title><description><![CDATA[<p>Hallole mal wieder.<br />
Ich stehe gerade auf dem Schlauch.</p>
<p>Ich möchte einen RGB-Dezimalwert in RGB Web-Wert umwandeln.<br />
Also ich bekomme von einer Software den Wert 8421631 als dezimal RGB Wert und möchte den dann als Webfarbe #ff8080 umwandeln.</p>
<p>Ich gehe bisher so vor:</p>
<pre><code>DWORD farbe_dez;
char farbe_webhex[16];

farbe_dez=8421631;//Wird hier dann innerhalb einer Funktion natürlich ersetzt.

sprintf(farbe_webhex,&quot;#%x&quot;,farbe_dez);
</code></pre>
<p>Heraus kommt hier: #8080ff.<br />
So weit so gut.</p>
<p>Dabei habe ich aber noch ein Problemchen:</p>
<p>1. Die Farben sind verdreht, fürs Web sollte ff8080 herauskommen.<br />
2. Ich arbeite mit STL Strings,also der Übergabewert(farbe_dez) wird nachher ein std::string sein.</p>
<p>Wie kann ich die Farben verdrehen und vor allem:<br />
Wie kann ich diese Umwandlung möglichst einfach mit std::string erzeugen?</p>
<p>Ich hoffe ich habe mein PRoblem(chen) deutlich darstellen können und freue mich auf Antwort, Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183552/rgb-dez-nach-rgb-web-umwandeln-wie-ersetze-ich-sprintf-mit-std-string</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 15:48:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183552.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Jun 2007 07:43:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 07:43:09 GMT]]></title><description><![CDATA[<p>Hallole mal wieder.<br />
Ich stehe gerade auf dem Schlauch.</p>
<p>Ich möchte einen RGB-Dezimalwert in RGB Web-Wert umwandeln.<br />
Also ich bekomme von einer Software den Wert 8421631 als dezimal RGB Wert und möchte den dann als Webfarbe #ff8080 umwandeln.</p>
<p>Ich gehe bisher so vor:</p>
<pre><code>DWORD farbe_dez;
char farbe_webhex[16];

farbe_dez=8421631;//Wird hier dann innerhalb einer Funktion natürlich ersetzt.

sprintf(farbe_webhex,&quot;#%x&quot;,farbe_dez);
</code></pre>
<p>Heraus kommt hier: #8080ff.<br />
So weit so gut.</p>
<p>Dabei habe ich aber noch ein Problemchen:</p>
<p>1. Die Farben sind verdreht, fürs Web sollte ff8080 herauskommen.<br />
2. Ich arbeite mit STL Strings,also der Übergabewert(farbe_dez) wird nachher ein std::string sein.</p>
<p>Wie kann ich die Farben verdrehen und vor allem:<br />
Wie kann ich diese Umwandlung möglichst einfach mit std::string erzeugen?</p>
<p>Ich hoffe ich habe mein PRoblem(chen) deutlich darstellen können und freue mich auf Antwort, Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299754</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Wed, 06 Jun 2007 07:43:09 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 08:27:37 GMT]]></title><description><![CDATA[<p>was sprichst gegen primitives:</p>
<pre><code class="language-cpp">((farbe_dez&amp;0xff)&lt;&lt;16)|(farbe_dez&amp;0xff00)|((farbe_dez&amp;0xff0000)&gt;&gt;16)
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299781</guid><dc:creator><![CDATA[rapso]]></dc:creator><pubDate>Wed, 06 Jun 2007 08:27:37 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 08:33:55 GMT]]></title><description><![CDATA[<p>Mondmann schrieb:</p>
<blockquote>
<p>Wie kann ich die Farben verdrehen...</p>
</blockquote>
<p>z.b. mit 'htonl()'.<br />
htonl() macht z.b. auf x86-kisten eine vertauschung, auf big-endian maschinen macht es nichts. der code von rapso verdreht dagegen immer.</p>
<p>Mondmann schrieb:</p>
<blockquote>
<p>Wie kann ich diese Umwandlung möglichst einfach mit std::string erzeugen?</p>
</blockquote>
<p>irgendwie mit 'stringstream' und '&lt;&lt; std::hex', aber ich glaube sprintf ist einfacher.<br />
<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/1299790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299790</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 06 Jun 2007 08:33:55 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 08:54:21 GMT]]></title><description><![CDATA[<p>Grüzi !</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

#define RGB_MAX 0xFFFFFF

string convert( unsigned int farbe_dez )
{
	char rgb[9] = &quot;&quot;;

	if ( farbe_dez &gt; RGB_MAX )  return &quot;&quot;;

	scanf( rgb, &quot;%x&quot;, farbe_dez );

	sprintf( rgb, &quot;%x&quot;, farbe_dez );
	sprintf( rgb + 6, &quot;%c%c&quot;, rgb[0], rgb[1] );
	memcpy( rgb, rgb + 4, 2 );
	sprintf( rgb + 4, &quot;%c%c&quot;, rgb[6], rgb[7] );

	return rgb;
}

int main() 
{
	cout &lt;&lt; convert( 0x123456 );
	return 1;
}
</code></pre>
<p>MfG,<br />
p.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299818</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Wed, 06 Jun 2007 08:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 10:12:33 GMT]]></title><description><![CDATA[<p>Vielen Dank mal ich werd mir Eure Vorschläge mal ansehen.<br />
Ich habs jetzt mal so gelöst:<br />
Ist zwar umständlich,aber es funktioniert:</p>
<pre><code>void FKT_deztowebhex(std::string &amp; inandout)
{
char cumwandeln[12];
char zw_1[3],zw_2[3],zw_3[3];
DWORD iumwandeln;
char farbe_webhex[16];
memset(farbe_webhex,0,16);

memset(zw_1,0,3);
memset(zw_2,0,3);
memset(zw_3,0,3);

strncpy(cumwandeln,inandout.c_str(),10);
cumwandeln[11]='\0';

inandout=&quot;&quot;;
inandout.clear();

iumwandeln=atoi(cumwandeln);
sprintf(farbe_webhex,&quot;%x&quot;,iumwandeln);

zw_1[0]=farbe_webhex[4];
zw_1[1]=farbe_webhex[5];

zw_2[0]=farbe_webhex[2];
zw_2[1]=farbe_webhex[3];

zw_3[0]=farbe_webhex[0];
zw_3[1]=farbe_webhex[1];

inandout=&quot;#&quot;;
inandout+=zw_1;
inandout+=zw_2;
inandout+=zw_3;
}
</code></pre>
<p>Aufruf:</p>
<pre><code>std::string zw_farbe;(...dynamisch zugewiesen...)

[b]FKT_deztowebhex(zw_farbe);[/b]//Umwandeln in Webhex FArbe
</code></pre>
<p>Dann kann ich mit zw_farbe bequem weiterarbeiten...</p>
<p>Was haltet Ihr davon?</p>
<p>Grüße Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299892</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Wed, 06 Jun 2007 10:12:33 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 10:21:05 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void convert( std::ostream&amp; out, int color )
{
	unsigned char* b = reinterpret_cast&lt; unsigned char* &gt;( &amp;color );

	out &lt;&lt; std::hex &lt;&lt; std::setw( 2 ) &lt;&lt; std::setfill( '0' ) 
		&lt;&lt; static_cast&lt; int &gt;( b[ 0 ] )
		&lt;&lt; static_cast&lt; int &gt;( b[ 1 ] )
		&lt;&lt; static_cast&lt; int &gt;( b[ 2 ] );
}
</code></pre>
<p>Je nach Byteanordnung! <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/1299898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299898</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 06 Jun 2007 10:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 10:59:57 GMT]]></title><description><![CDATA[<p>unabhängig von der byte order, aber auch doof:</p>
<pre><code class="language-cpp">void FKT_deztowebhex (string &amp;inandout)
{
    unsigned long v = atoi (inandout.c_str());
    ostringstream stream;
    stream  &lt;&lt; '#' &lt;&lt; hex 
            &lt;&lt; setfill('0') &lt;&lt; setw(2) &lt;&lt; (v&amp;0xff) 
            &lt;&lt; setfill('0') &lt;&lt; setw(2) &lt;&lt; ((v&gt;&gt;8)&amp;0xff) 
            &lt;&lt; setfill('0') &lt;&lt; setw(2) &lt;&lt; ((v&gt;&gt;16)&amp;0xff);
    inandout = stream.str();    
}
</code></pre>
<p><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/1299928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299928</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 06 Jun 2007 10:59:57 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 12:22:34 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>irgendwie mit 'stringstream' und '&lt;&lt; std::hex', aber ich glaube sprintf ist einfacher.<br />
<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>
</blockquote>
<p>Da glaubst Du falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299975</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 12:44:45 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>pale dog schrieb:</p>
<blockquote>
<p>irgendwie mit 'stringstream' und '&lt;&lt; std::hex', aber ich glaube sprintf ist einfacher.<br />
<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>
</blockquote>
<p>Da glaubst Du falsch.</p>
</blockquote>
<p>kennst du was einfacheres als:</p>
<pre><code>sprintf (array, &quot;#%02x%02x%02x&quot;, wert&amp;0xff, (wert&gt;&gt;8)&amp;0xff, (wert&gt;&gt;16)&amp;0xff);
</code></pre>
<p><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/1300002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300002</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:44:45 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 12:47:56 GMT]]></title><description><![CDATA[<p>Ja, den Code, den du selber da oben geschrieben hast (ist zwar etwas länger als dein sprintf()-Aufruf, aber sicherer).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300007</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 12:58:17 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ja, den Code, den du selber da oben geschrieben hast (ist zwar etwas länger als dein sprintf()-Aufruf, aber sicherer).</p>
</blockquote>
<p>na, ganz toll, 11 mal &lt;&lt; und 6 mal setfill/setw <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /><br />
das 'sprintf' spuckt immer 8 bytes aus, also unbedenklich in bezug auf buffer overflows...<br />
<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/1300018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300018</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:58:17 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 13:02:03 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Ja, den Code, den du selber da oben geschrieben hast (ist zwar etwas länger als dein sprintf()-Aufruf, aber sicherer).</p>
</blockquote>
<p>na, ganz toll, 11 mal &lt;&lt; und 6 mal setfill/setw <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
</blockquote>
<p>Wenn du noch daran denkst, daß du setfill nicht für jeden Wert wiederholen mußt, wird das noch kürzer <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>
<blockquote>
<p>das 'sprintf' spuckt immer 8 bytes aus, also unbedenklich in bezug auf buffer overflows...<br />
<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>
</blockquote>
<p>Das weißt du, aber weiß es auch der Compiler? (und noch wichtiger: kann er feststellen, ob er wirklich genug Platz für diese 8 Byte zur Verfügung hat?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300021</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 13:06:59 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Wenn du noch daran denkst, daß du setfill nicht für jeden Wert wiederholen mußt, wird das noch kürzer <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>
</blockquote>
<p>das geht? ok, drei mal &lt;&lt; gespart <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>
<p>CStoll schrieb:</p>
<blockquote>
<blockquote>
<p>das 'sprintf' spuckt immer 8 bytes aus, also unbedenklich in bezug auf buffer overflows...<br />
<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>
</blockquote>
<p>Das weißt du, aber weiß es auch der Compiler? (und noch wichtiger: kann er feststellen, ob er wirklich genug Platz für diese 8 Byte zur Verfügung hat?)</p>
</blockquote>
<p>wieso? machste einfach <em>char array[8];</em> direkt darüber, dann ist doch alles gut...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300025</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 13:10:57 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Ja, den Code, den du selber da oben geschrieben hast (ist zwar etwas länger als dein sprintf()-Aufruf, aber sicherer).</p>
</blockquote>
<p>na, ganz toll, 11 mal &lt;&lt; und 6 mal setfill/setw <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /><br />
das 'sprintf' spuckt immer 8 bytes aus, also unbedenklich in bezug auf buffer overflows...<br />
<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>
</blockquote>
<p>Warte mal. Verstehe ich das richtig? Du bist für 'sprintf', weil Dir die andere Variante zuviel zu Tippen ist und hast neulich in dem C++/Java-Thread einen Java-Code verteidigt, bei dem man <em>seitenlang</em> redundantes Zeugs schreibt, was einem der Compiler abnehmen könnte???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300029</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 13:15:06 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Warte mal. Verstehe ich das richtig? Du bist für 'sprintf', weil Dir die andere Variante zuviel zu Tippen ist und hast neulich in dem C++/Java-Thread einen Java-Code verteidigt, bei dem man <em>seitenlang</em> redundantes Zeugs schreibt, was einem der Compiler abnehmen könnte???</p>
</blockquote>
<p>wir sind hier ja nicht bei Java <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="😉"
    /><br />
wenn es mehrere möglichkeiten gibt, ein und dasselbe zu machen, dann bin ich immer für die kürzere oder einfachere oder vielleicht auch schnellere version...<br />
<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/1300031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300031</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 13:16:26 GMT]]></title><description><![CDATA[<p>Der C Code ist bei C++ keine Alternative! :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300033</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:16:26 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 13:17:11 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Der C Code ist bei C++ keine Alternative! :p</p>
</blockquote>
<p>sprintf ist in C++ erlaubt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300035</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Wed, 06 Jun 2007 13:20:29 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Der C Code ist bei C++ keine Alternative! :p</p>
</blockquote>
<p>sprintf ist in C++ erlaubt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
</blockquote>
<p>Theoretisch ja! Hab ja auch nichts Gegenteiliges behauptet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300037</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 06:18:59 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>wieso? machste einfach <em>char array[8];</em> direkt darüber, dann ist doch alles gut...</p>
</blockquote>
<p>Wie man sieht, benötigt ein C-Programmierer sehr viel Selbstdisziplin (und wenn du diesen sprintf()-Aufruf in eine Funktion packst, der sein Ziel als Parameter übergeben bekommt, muß irgendwer anderes sicherstellen, daß der Speicherplatz ausreicht - und kein Compiler der Welt wird dich daran hindern, sowas zu schreiben:</p>
<pre><code class="language-cpp">char* rgbtext;
convert(color,rgbtext);//viel Spaß bei der Suche nach dem Fehler
</code></pre>
<p>Ja, die stringstream-Variante ist etwas länger zu schreiben, aber dafür sorgt sie selber dafür, daß du genau den Speicherplatz bekommst, den du benötigst. Und im Zweifelsfall ist mir die Sicherheit, daß mein Code auch in Extremsituationen funktioniert (oder erst gar keine Extremsituationen zulässt) lieber als eine eingesparte Codezeile.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300469</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 07 Jun 2007 06:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 06:51:35 GMT]]></title><description><![CDATA[<p>Und wo ist nu die optimale Lösung in vollendeter Form von Quellcode ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300482</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Thu, 07 Jun 2007 06:51:35 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 08:19:54 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ja, die stringstream-Variante ist etwas länger zu schreiben, aber dafür sorgt sie selber dafür, daß du genau den Speicherplatz bekommst, den du benötigst. Und im Zweifelsfall ist mir die Sicherheit, daß mein Code auch in Extremsituationen funktioniert (oder erst gar keine Extremsituationen zulässt) lieber als eine eingesparte Codezeile.</p>
</blockquote>
<p>Sind wir aber ehrlich: Die stringstream-Variante bläht das Programm richtig derbe auf und ist erheblich langsamer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300525</guid><dc:creator><![CDATA[C++ Kritiker]]></dc:creator><pubDate>Thu, 07 Jun 2007 08:19:54 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 08:26:01 GMT]]></title><description><![CDATA[<p>C++ Kritiker schrieb:</p>
<blockquote>
<p>Sind wir aber ehrlich: Die stringstream-Variante bläht das Programm richtig derbe auf und ist erheblich langsamer.</p>
</blockquote>
<p>Ich hatte mit der Stringstream-Performance noch nie Probleme. Gerade im vorliegenden Fall sollte das wirklich piepegal sein. Zum Programm aufblähen: Wayne …? Das mag vielleicht bei einem Tool von insgesamt 100 LOC interessant sein aber bei jedem halbwegs erstgemeinten Programm fällt's nicht ins Gewicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300528</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Thu, 07 Jun 2007 08:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 08:37:23 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Ich hatte mit der Stringstream-Performance noch nie Probleme. Gerade im vorliegenden Fall sollte das wirklich piepegal sein.</p>
</blockquote>
<p>Du kennst die Umstände seines Problemes genau so wenig wie ich, also sollte ein guter Programmierer immer davon ausgehen, das es nicht auf die Performance hauen soll. Und wenn du vergleiche zwischen der sprintf-Variante und der stringstream-Variante anstellst, dann wirst du die Dimensionen erkennen die zwischen den beiden Varianten liegen.</p>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Zum Programm aufblähen: Wayne …?</p>
</blockquote>
<p>Wie schon gesagt, wir kennen die Umstände nicht. Jemanden etwas zu empfehlen, was zwar einfach ist (wobei das hier absolut relativ ist) aber das Programm aufbläht ist auch nicht die feine art. Hier werden optimale lösungen gesucht und nicht lösungen, die relativ einfach zu benutzen sind (kommt auf den standpunkt an), sondern die effektiv sind. Und effektiv ist beim programmieren immer: Performance und Größe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300533</guid><dc:creator><![CDATA[C++ Kritiker]]></dc:creator><pubDate>Thu, 07 Jun 2007 08:37:23 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 08:51:23 GMT]]></title><description><![CDATA[<p>C++ Kritiker schrieb:</p>
<blockquote>
<p>Und wenn du vergleiche zwischen der sprintf-Variante und der stringstream-Variante anstellst, dann wirst du die Dimensionen erkennen die zwischen den beiden Varianten liegen.</p>
</blockquote>
<p>wenn's wirklich auf performance und geringe codegrösse ankommt, kann man noch nicht mal 'sprintf' nehmen. dann geht nur noch: immer 4 bits shiften/ausmaskieren, als index in ein array von hex-ziffern nehmen und diese dann aneinanderhängen.<br />
wenn das auch nicht hilft, bleibt nur noch assembler <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/1300540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300540</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Thu, 07 Jun 2007 08:51:23 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 09:02:12 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>wenn's wirklich auf performance und geringe codegrösse ankommt, kann man noch nicht mal 'sprintf' nehmen. dann geht nur noch: immer 4 bits shiften/ausmaskieren, als index in ein array von hex-ziffern nehmen und diese dann aneinanderhängen.</p>
</blockquote>
<p>Das ist gar nicht mal so falsch und disqualifiziert die Bemerkung des C++-Kritikers vollends: Da wir nichts über die genauen Umstände des Programmierers wissen, sollten wir die beste allgemeingültige Lösung geben und evtl. auf Probleme und Potential anderer Lösungen hinweisen – was getan worden ist. Trotzdem bleibt es dabei, dass 'stringstream' im Kontext von C++ ohne Zusatzbibliotheken wie Boost die beste allgemeingültige Lösung ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300548</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Thu, 07 Jun 2007 09:02:12 GMT</pubDate></item><item><title><![CDATA[Reply to RGB-Dez nach RGB-Web umwandeln: Wie ersetze ich sprintf mit std::String? on Thu, 07 Jun 2007 09:47:10 GMT]]></title><description><![CDATA[<p>C++ Kritiker schrieb:</p>
<blockquote>
<p>also sollte ein guter Programmierer immer davon ausgehen,</p>
</blockquote>
<p>Der gute Softwarearchitekt hingegen denkt etwas über den Gesamtzusammenhang nach, erkennt dass bei einer HTML-Ausgabe noch mehr Text als &lt;10 Zeichen anfällt, sieht dass ein std::stringstream einen hervorragenden Puffer abgibt den man mehreren Funktionen nacheinander per Referenz übergeben kann und sieht sich deshalb veranlasst in einem C++ Forum auch eine Lösung vorzuschlagen die die Features von C++ auch nutzt.</p>
<p>Damit's <strong>insgesamt</strong> kürzer, schneller und besser wartbar wird.</p>
<p>Grüsse</p>
<p>*this</p>
<p>P.S.: Und wer jetzt mit sowas wie MAX_BUF_SIZE ankommt hört den Gong nicht mehr; dafür sorg ich persönlich! <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/1300568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300568</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Thu, 07 Jun 2007 09:47:10 GMT</pubDate></item></channel></rss>