<?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 void-Zeiger und Streams]]></title><description><![CDATA[<p>Hi,<br />
ich versuche gerade einen fremden Quelltext zu verstehen und um einige Dinge zu erweitern, und hab da ein kleines Problem:</p>
<pre><code>printf (
      &quot;Message Length: %lu\n&quot;
      &quot;Message: &quot;,
      pMsgBuf-&gt;GetMsgLength ()
      );

   fwrite (
      pMsgBuf-&gt;GetBuffer (), 
      1, 
      pMsgBuf-&gt;GetMsgLength (), 
      stdout
      );

   // Flush the fwrite to the display.
   fflush (stdout);
</code></pre>
<p>pMsgBuf enthält eine Message (also eine Zeichenkette), die mit diesem Code auf dem Bildschirm ausgegeben wird.<br />
Mein Problem ist nun, dass ich die Zeichenkette garnicht ausgeben will, sondern als solche nur speichern möchte.<br />
Auf die Klasse von pMsgBuf habe ich keinen Zugriff und GetBuffer() gibt nur einen void pointer zurück.</p>
<p>Den Zeiger einfach von void auf char umzu-casten funktioniert leider nicht, da kommt nur Müll raus.<br />
Wie komme ich also an die Zeichenkette ran? Ich hab überlegt, dass man bei fwrite nicht stdout sondern sdtin angeben könnte, aber mir ist dann immernoch nicht klar wo der Kram hingeht...</p>
<p>Hat da jemand Tips oder Vorschläge wie man das am besten macht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146185/problem-mit-void-zeiger-und-streams</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 14:13:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146185.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 May 2006 07:51:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit void-Zeiger und Streams on Fri, 05 May 2006 07:51:51 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich versuche gerade einen fremden Quelltext zu verstehen und um einige Dinge zu erweitern, und hab da ein kleines Problem:</p>
<pre><code>printf (
      &quot;Message Length: %lu\n&quot;
      &quot;Message: &quot;,
      pMsgBuf-&gt;GetMsgLength ()
      );

   fwrite (
      pMsgBuf-&gt;GetBuffer (), 
      1, 
      pMsgBuf-&gt;GetMsgLength (), 
      stdout
      );

   // Flush the fwrite to the display.
   fflush (stdout);
</code></pre>
<p>pMsgBuf enthält eine Message (also eine Zeichenkette), die mit diesem Code auf dem Bildschirm ausgegeben wird.<br />
Mein Problem ist nun, dass ich die Zeichenkette garnicht ausgeben will, sondern als solche nur speichern möchte.<br />
Auf die Klasse von pMsgBuf habe ich keinen Zugriff und GetBuffer() gibt nur einen void pointer zurück.</p>
<p>Den Zeiger einfach von void auf char umzu-casten funktioniert leider nicht, da kommt nur Müll raus.<br />
Wie komme ich also an die Zeichenkette ran? Ich hab überlegt, dass man bei fwrite nicht stdout sondern sdtin angeben könnte, aber mir ist dann immernoch nicht klar wo der Kram hingeht...</p>
<p>Hat da jemand Tips oder Vorschläge wie man das am besten macht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1051252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1051252</guid><dc:creator><![CDATA[eXistence]]></dc:creator><pubDate>Fri, 05 May 2006 07:51:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit void-Zeiger und Streams on Fri, 05 May 2006 07:59:35 GMT]]></title><description><![CDATA[<p>Also nach stdin kannst du nichts ausgeben - das ist der Standard-<strong>EINGABE</strong>kanal deines Programms. Wenn du den Puffer-Inhalt in eine Datei schreiben willst, mußt du als Ziel ein File-Handle angeben, das du per fopen() erzeugt hast.</p>
<p>Und das Umcasten nach char* sollte eigentlich etwas brauchbares zurückliefern - allerdings solltest du wissen, wie der Speicherbereich organisiert ist.</p>
<p>PS: In C++ solltest du auf printf() und fwrite() lieber verzichten - da gibt es iostreams, die man verwenden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1051258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1051258</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 05 May 2006 07:59:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit void-Zeiger und Streams on Fri, 05 May 2006 08:18:11 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Also nach stdin kannst du nichts ausgeben - das ist der Standard-<strong>EINGABE</strong>kanal deines Programms. Wenn du den Puffer-Inhalt in eine Datei schreiben willst, mußt du als Ziel ein File-Handle angeben, das du per fopen() erzeugt hast.</p>
</blockquote>
<p>ich will es ja nicht in eine Datei schreiben, sondern als char-array (bzw. char <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="😉"
    /> haben um damit weiterarbeiten zu können.</p>
<blockquote>
<p>Und das Umcasten nach char* sollte eigentlich etwas brauchbares zurückliefern - allerdings solltest du wissen, wie der Speicherbereich organisiert ist.</p>
</blockquote>
<p>Ich depp... du hast natürlich recht.<br />
Mir ist bei der Ausgabe ein Fehler unterlaufen, der cast funktioniert einwandfrei und ich hab meine Zeichenkette... Manchmal sieht man den Wald vor lauter Bäumen nicht.</p>
<p>Das Problem hat sich also erledigt <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>PS: In C++ solltest du auf printf() und fwrite() lieber verzichten - da gibt es iostreams, die man verwenden kann.</p>
</blockquote>
<p>Ich weiß, wie gesagt, das ist nur ein Ausschnitt von einem vorhandenen Programm in dem ich rumwurschteln will/muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1051275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1051275</guid><dc:creator><![CDATA[eXistence]]></dc:creator><pubDate>Fri, 05 May 2006 08:18:11 GMT</pubDate></item></channel></rss>