<?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 &amp;amp; eigene Stringklasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine einge Stringklasse ER_String.</p>
<p>Folgendes funktioniert:</p>
<pre><code class="language-cpp">ER_String str = &quot;hallo&quot;;
char  buffer[200];

sprintf(buffer, &quot;%s&quot;,  (char*) str );  
printf(buffer);
</code></pre>
<p>Im obigen Beispiel habe ich extra auf char* casten müssen.<br />
Ich möchte aber gerne soetwas haben, OHNE Cast.</p>
<pre><code class="language-cpp">sprintf(buffer, &quot;%s&quot;,  str );
</code></pre>
<p>Anscheinend wird intern ein void* - cast gemacht. Kann ich das irgendwie unterbinden/blockieren?</p>
<p>Ich bleibe an der Sache dran. Vielleicht kann ich's nächstes Mal besser erklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/117095/sprintf-amp-eigene-stringklasse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 23:57:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/117095.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 Aug 2005 13:57:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Wed, 03 Aug 2005 13:57:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine einge Stringklasse ER_String.</p>
<p>Folgendes funktioniert:</p>
<pre><code class="language-cpp">ER_String str = &quot;hallo&quot;;
char  buffer[200];

sprintf(buffer, &quot;%s&quot;,  (char*) str );  
printf(buffer);
</code></pre>
<p>Im obigen Beispiel habe ich extra auf char* casten müssen.<br />
Ich möchte aber gerne soetwas haben, OHNE Cast.</p>
<pre><code class="language-cpp">sprintf(buffer, &quot;%s&quot;,  str );
</code></pre>
<p>Anscheinend wird intern ein void* - cast gemacht. Kann ich das irgendwie unterbinden/blockieren?</p>
<p>Ich bleibe an der Sache dran. Vielleicht kann ich's nächstes Mal besser erklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/845017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/845017</guid><dc:creator><![CDATA[Tanzfreak]]></dc:creator><pubDate>Wed, 03 Aug 2005 13:57:00 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Wed, 03 Aug 2005 14:08:22 GMT]]></title><description><![CDATA[<p>Einfach den &lt;&lt; Operator für ostreams überladen. printf verwendet keiner in c++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/845026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/845026</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Wed, 03 Aug 2005 14:08:22 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Wed, 03 Aug 2005 14:12:47 GMT]]></title><description><![CDATA[<blockquote>
<p>printf verwendet keiner in c++</p>
</blockquote>
<p>Mir ist nichts besseres eingefallen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Meine C/C++ Kenntnisse sind schon etwas eingerostet.</p>
<blockquote>
<p>Einfach den &lt;&lt; Operator für ostreams überladen</p>
</blockquote>
<p>OK. Werd's mir anschauen.</p>
<p>Merci</p>
]]></description><link>https://www.c-plusplus.net/forum/post/845032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/845032</guid><dc:creator><![CDATA[Tanzfreak]]></dc:creator><pubDate>Wed, 03 Aug 2005 14:12:47 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Wed, 03 Aug 2005 14:20:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class bar {
	string text;
	size_t zahl;
public:
	bar(string t, size_t z): text(t), zahl(z);
	// so kann die Funktion auf die privaten Members zugreifen!
	friend std::ostream&amp; operator &lt;&lt;(ostream&amp; out, const bar&amp; obj);
};

std::ostream&amp; operator &lt;&lt;(ostream&amp; out, const bar&amp; obj) {
	out &lt;&lt; obj.text &lt;&lt; &quot; &quot; &lt;&lt; obj.zahl &lt;&lt; endl;
	return out;
}

int main() {
	bar foo(&quot;hallo&quot;, 12);
	cout &lt;&lt; foo;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/845036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/845036</guid><dc:creator><![CDATA[hehejo]]></dc:creator><pubDate>Wed, 03 Aug 2005 14:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Mon, 08 Aug 2005 12:47:31 GMT]]></title><description><![CDATA[<p>Ich habe den &lt;&lt; Operator überladen, aber leider funktionierts immer noch nicht.<br />
Muss immer noch auf (char*) casten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/847941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847941</guid><dc:creator><![CDATA[Tanzfreak]]></dc:creator><pubDate>Mon, 08 Aug 2005 12:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Mon, 08 Aug 2005 13:14:12 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn du den op&lt;&lt; für deine klasse überladen hast dann musst du die auch verwenden. Das hilft dir beim sprintf nicht weiter. Wenn du also das verhalten von sprintf haben willst verwende stringstreams. Dafür funktioniert dann dein op&lt;&lt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/847953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847953</guid><dc:creator><![CDATA[prolog]]></dc:creator><pubDate>Mon, 08 Aug 2005 13:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Mon, 08 Aug 2005 13:25:24 GMT]]></title><description><![CDATA[<p>Auf die Schnelle werde ich aus deiner Antwort nicht schlau. Hast du ein Beispiel?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/847985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/847985</guid><dc:creator><![CDATA[Tanzfreak]]></dc:creator><pubDate>Mon, 08 Aug 2005 13:25:24 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Mon, 08 Aug 2005 13:37:20 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab deinem beitrag jetzt einfach mal entnommen dass du den op&lt;&lt; für deine klasse wie beschrieben überladen hast.</p>
<p>Und dann erwartet hast, dass du beim sprintf nicht mehr casten musst. Wenn ich das falsch sehe, dann berichtige mich. Was die anderen aber gemeint haben, ist dass du dadurch dass du mit sprintf arbeitest immer noch casten musst weil das überladen des op&lt;&lt; darauf keinen einfluss hat. Der op&lt;&lt; wurde ja für streams überladen also musst du die entsprechende streams auch verwenden damit das nicht umsonst war.</p>
<p>Und statt sprintf kann man in c++ eben stringstream verwenden.</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;

ER_String str = &quot;hallo&quot;;
const int value=20;
std::ostringstream out; //string stream

out&lt;&lt;value&lt;&lt;&quot; &quot;&lt;&lt;str; //jetzt steht im stringstream &quot;20 hallo&quot;

std::cout&lt;&lt;out.str()&lt;&lt;&quot;\n&quot;;
</code></pre>
<p>Ausgabe ist:</p>
<blockquote>
<p>20 hallo</p>
</blockquote>
<p>Man benuzt also nicht mehr sprintf um in strings zu schreiben sondern die entsprechenden streams und hat etwa das selbe verhalten.</p>
<p>So far ..</p>
<p>//EDIT fehler im code</p>
]]></description><link>https://www.c-plusplus.net/forum/post/848000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/848000</guid><dc:creator><![CDATA[prolog]]></dc:creator><pubDate>Mon, 08 Aug 2005 13:37:20 GMT</pubDate></item><item><title><![CDATA[Reply to sprintf &amp;amp; eigene Stringklasse on Mon, 08 Aug 2005 13:51:36 GMT]]></title><description><![CDATA[<p>Super Danke! Hast mir sehr geholfen. So wie du's beschrieben hast funktionierts.</p>
<p>Mir werde mir das Ganze mal durch den Kopf gehen lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/848018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/848018</guid><dc:creator><![CDATA[Tanzfreak]]></dc:creator><pubDate>Mon, 08 Aug 2005 13:51:36 GMT</pubDate></item></channel></rss>