<?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[Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot;]]></title><description><![CDATA[<p>Hi,</p>
<p>wo liegt eigentlich der unterschied zwischen <strong>printf()</strong> und <strong>cout</strong>? Das würde mich mal interessieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186540/allgemeine-frage-betreffs-quot-printf-quot-und-quot-cout-quot</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 15:45:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186540.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Jul 2007 01:17:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 01:17:11 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wo liegt eigentlich der unterschied zwischen <strong>printf()</strong> und <strong>cout</strong>? Das würde mich mal interessieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321914</guid><dc:creator><![CDATA[Der Typ mit der Frage]]></dc:creator><pubDate>Tue, 10 Jul 2007 01:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 03:15:31 GMT]]></title><description><![CDATA[<p>bin mir nicht sicher, aber printf kommt aus dem C Standart, und cout aus dem C++ Standart.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321917</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 10 Jul 2007 03:15:31 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:00:07 GMT]]></title><description><![CDATA[<p>Der Typ mit der Frage schrieb:</p>
<blockquote>
<p>wo liegt eigentlich der unterschied zwischen <strong>printf()</strong> und <strong>cout</strong>? Das würde mich mal interessieren!</p>
</blockquote>
<p>Die wesentlichen Unterschiede sind:<br />
a) printf ist eine sogenannte Ellipse (Variable Parameterübergabe) was als eine potentielle Fehlerquelle gilt (Thema Bufferüberlauf...).<br />
b) printf ist nicht typsicher, eine falsche Angabe kann zum Absturz zur Laufzeit führen, cout ist typsicher.<br />
c) printf gilt als schneller, was bislang von mir auch in Teilen bestätigt werden kann, dies ist aber nicht zwingend so, da cout durch typsicherheit prinzipiell das Potential hätte schneller zu sein (kenne aber bislang keine schnellere Implementiereung).</p>
<p>Ich ziehe prinzipiell die Streamschreibweise vor, es sei den es würde sich herausstellen das dies der Flaschenhals in der Anwendung ist.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321939</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:00:07 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:11:06 GMT]]></title><description><![CDATA[<p>- printf ist einfacher zu benutzen bei speziellen formatierungen.<br />
- cout macht falsche ausgaben, wenn variablen als 'volatile' deklariert sind.<br />
- bei cout muss man manchmal 'endl' o.ä. dranhängen, sonst wird nix ausgegeben.<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="🙂"
    /><br />
aber im grunde genommen ist es egal, welches man benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321941</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:11:06 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:33:51 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>- cout macht falsche ausgaben, wenn variablen als 'volatile' deklariert sind.</p>
</blockquote>
<p>Hä? <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>- bei cout muss man manchmal 'endl' o.ä. dranhängen, sonst wird nix ausgegeben.</p>
</blockquote>
<p>stdout (printf) ist auch gepuffert, und analog zum impliziten std::flush in std::endl gibt es für die C-Streams auch ein fflush <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/1321949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321949</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:33:51 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:47:08 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>pale dog schrieb:</p>
<blockquote>
<p>- cout macht falsche ausgaben, wenn variablen als 'volatile' deklariert sind.</p>
</blockquote>
<p>Hä? <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>
<pre><code>char *a = &quot;hello &quot;;
    volatile char *b = &quot;world&quot;;
    cout &lt;&lt; a &lt;&lt; b &lt;&lt; endl;
</code></pre>
<p><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/1321955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321955</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:50:29 GMT]]></title><description><![CDATA[<p>Kannst du das auch in Worten erklären oder sollen wir diesen Code-Fetzen erst durch den Compiler jagen, um es zu verstehen?</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<blockquote>
<p>- bei cout muss man manchmal 'endl' o.ä. dranhängen, sonst wird nix ausgegeben.</p>
</blockquote>
<p>stdout (printf) ist auch gepuffert, und analog zum impliziten std::flush in std::endl gibt es für die C-Streams auch ein fflush <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>Und solange du nicht explizit etwas anderes einstellst, wird cout automatisch geflusht, bevor etwas über cin eingelesen werden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321959</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:50:29 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:52:06 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Kannst du das auch in Worten erklären oder sollen wir diesen Code-Fetzen erst durch den Compiler jagen, um es zu verstehen?</p>
</blockquote>
<p>die ausgabe ist: 'hello 1'<br />
erklären kann ich's nicht. ist wohl ein bug.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321960</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:53:00 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Kannst du das auch in Worten erklären oder sollen wir diesen Code-Fetzen erst durch den Compiler jagen, um es zu verstehen?</p>
</blockquote>
<p>Die Erklärung hätte ich auch bitte (wenn vorhanden, sonst suche ich selbst), da mein Compiler (VC++8.0) den volatile char* zu bool &quot;verkürzt&quot; - was mir der Compiler auch explizit anmerkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321961</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 06:59:02 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>da mein Compiler (VC++8.0) den volatile char* zu bool &quot;verkürzt&quot; ...</p>
</blockquote>
<p>er macht sich's eben einfach <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>
<p>edit: und langsamer findet er's auch noch, oh mann...</p>
<blockquote>
<p>warning C4800: 'volatile char *' : forcing value to bool 'true' or 'false' <strong>(performance warning)</strong></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1321962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321962</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 06:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 07:55:39 GMT]]></title><description><![CDATA[<p>Wenn dann so:</p>
<pre><code class="language-cpp">const char* volatile foo = &quot;Hallo&quot;;
std::cout &lt;&lt; foo &lt;&lt; std::endl;
</code></pre>
<p>Das Problem ist das std::ostream keine Spezialisierung für den Operator&lt;&lt; findet. Und die Standardkonvertierung eines Zeigers ist wohl in ein bool.</p>
<p>Also einfach ne eigene schreiben! ;-P Aber keine Garantie auf Sicherheit! *hust*</p>
<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;( std::ostream&amp; out, const volatile char* str )
{
	return ( out &lt;&lt; const_cast&lt; const char* &gt;( str ) );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1321969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321969</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 10 Jul 2007 07:55:39 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 08:07:16 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Und die Standardkonvertierung eines Zeigers ist wohl in ein bool.</p>
</blockquote>
<p>weil die ja so sehr miteinander verwandt sind <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="🙄"
    /></p>
<p>David_pb schrieb:</p>
<blockquote>
<p>Also einfach ne eigene schreiben!</p>
</blockquote>
<p>oder (on topic) gleich 'printf' nehmen <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/1322015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322015</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 08:09:35 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Und die Standardkonvertierung eines Zeigers ist wohl in ein bool.</p>
</blockquote>
<p>weil die ja so sehr miteinander verwandt sind <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="🙄"
    /></p>
</blockquote>
<p>Naklar! <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="🙂"
    /> 0-Pointer wird false, sonst true.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void foo( bool x )
{
	std::cout &lt;&lt; x;
}

int main()
{
	const char* bar = &quot;hallo&quot;;
	foo( bar );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1322017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322017</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 08:14:45 GMT]]></title><description><![CDATA[<p>Das erklärt dann auch pale dogs hello 1 Ausgabe.<br />
(Sichmalaufdieschulterklopf)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322023</guid><dc:creator><![CDATA[Die Schlussfolgerung]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 10:55:58 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Naklar! <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="🙂"
    /> 0-Pointer wird false, sonst true.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void foo( bool x )
{
	std::cout &lt;&lt; x;
}

int main()
{
	const char* bar = &quot;hallo&quot;;
	foo( bar );
}
</code></pre>
</blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen, aber in einen 'bool' werden sie einfach so, ohne casts, umgewandelt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
ich liebe C++, so ein kaputter mist!<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/1322177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322177</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 10:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 11:11:32 GMT]]></title><description><![CDATA[<blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen, aber in einen 'bool' werden sie einfach so, ohne casts, umgewandelt.</p>
</blockquote>
<p>Sonst würde ja ein einfacher Test auf einen Nullzeiger nicht funktionieren:</p>
<pre><code class="language-cpp">void f(char *p)
{
  if(p)  // &lt;- Konvertierung in bool
  {

  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1322191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322191</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Tue, 10 Jul 2007 11:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 11:23:51 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen,</p>
</blockquote>
<p>Natürlich kann man. Was erzählst du da wieder?</p>
<blockquote>
<p>aber in einen 'bool' werden sie einfach so, ohne casts, umgewandelt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Und wo siehst du da ein Problem, dass du diesen Smily benutzen musst?</p>
<blockquote>
<p>ich liebe C++, so ein kaputter mist!<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>Ja ja, wir wissen, dass du ein kleiner Troll bist. Mich hat allerdings erschreckt, dass du noch so jung bist. Deine Verbohrtheit hat mich dich älter schätzen lassen <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/1322201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322201</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 10 Jul 2007 11:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 11:55:56 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen, aber in einen 'bool' werden sie einfach so, ohne casts, umgewandelt.</p>
</blockquote>
<p>Sonst würde ja ein einfacher Test auf einen Nullzeiger nicht funktionieren:</p>
<pre><code class="language-cpp">void f(char *p)
{
  if(p)  // &lt;- Konvertierung in bool
  {

  }
}
</code></pre>
</blockquote>
<p>wieso wird da was konvertiert? das ist doch die kurzschreibweise für 'if (p != 0)'<br />
das resultat des (stillschweigenden) vergleichs mit 0 ist 'bool', aber der pointer bleibt doch, was er ist.</p>
<p>MFK schrieb:</p>
<blockquote>
<p>pale dog schrieb:</p>
<blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen,</p>
</blockquote>
<p>Natürlich kann man. Was erzählst du da wieder?</p>
</blockquote>
<p>mit type cast, aber ohne nicht.</p>
<pre><code>void *v;
    char *c = v;  // geht nicht ohne cast
    bool b1 = v;  // geht
    bool b2 = c;  // geht auch
</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/1322229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322229</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 11:55:56 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 12:01:01 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>mit type cast, aber ohne nicht.</p>
</blockquote>
<p>Lies nochmal, was du behauptet hast, und gleiche das mit deinem Code ab.</p>
<p>Dass man ein void* keinem typisierten Zeiger zuweisen kann, ist richtig. UDIAGS.</p>
<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/1322233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322233</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 10 Jul 2007 12:01:01 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 12:09:18 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>Th schrieb:</p>
<blockquote>
<blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen, aber in einen 'bool' werden sie einfach so, ohne casts, umgewandelt.</p>
</blockquote>
<p>Sonst würde ja ein einfacher Test auf einen Nullzeiger nicht funktionieren:</p>
<pre><code class="language-cpp">void f(char *p)
{
  if(p)  // &lt;- Konvertierung in bool
  {

  }
}
</code></pre>
</blockquote>
<p>wieso wird da was konvertiert? das ist doch die kurzschreibweise für 'if (p != 0)'<br />
das resultat des (stillschweigenden) vergleichs mit 0 ist 'bool', aber der pointer bleibt doch, was er ist.</p>
</blockquote>
<p>Und bei der Zuweisung an einen bool passiert genau das selbe wie bei dieser if()-Abfrage <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>MFK schrieb:</p>
<blockquote>
<p>pale dog schrieb:</p>
<blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen,</p>
</blockquote>
<p>Natürlich kann man. Was erzählst du da wieder?</p>
</blockquote>
<p>mit type cast, aber ohne nicht.</p>
<pre><code>void *v;
    char *c = v;  // geht nicht ohne cast
    bool b1 = v;  // geht
    bool b2 = c;  // geht auch
</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>
</blockquote>
<p>Wenn du schon über die Sprache lästern willst, dann achte mal darauf, was du schreibst:</p>
<pre><code class="language-cpp">char* c;
void* v=c;//geht
bool  b=c;//geht auch

c=v;//geht nur mit cast
c=b;//geht genausowenig
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1322239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322239</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Jul 2007 12:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 12:10:21 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>Th schrieb:</p>
<blockquote>
<blockquote>
<p>wahnsinn, man kann keine char* einem void* zuweisen, aber in einen 'bool' werden sie einfach so, ohne casts, umgewandelt.</p>
</blockquote>
<p>Sonst würde ja ein einfacher Test auf einen Nullzeiger nicht funktionieren:</p>
<pre><code class="language-cpp">void f(char *p)
{
  if(p)  // &lt;- Konvertierung in bool
  {

  }
}
</code></pre>
</blockquote>
<p>wieso wird da was konvertiert? das ist doch die kurzschreibweise für 'if (p != 0)'</p>
</blockquote>
<p>Ja, und rate mal, wie die technisch realisiert wird? Durch eine implizite Konvertierung nach 'bool'. Das Konzept ist gut. Andere Sprachen haben andere, teilweise sehr viel aufwendigere Konzepte, um Ausdrücke auf Gültigkeit prüfen zu lassen aber diese Konzepte sind nicht zwangsläufig besser (Seitenblick in Richtung .NET mit dem verkorksten 'IsTrue'-Operator).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322240</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 10 Jul 2007 12:10:21 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 13:22:12 GMT]]></title><description><![CDATA[<p>bedeutet das, dass in C++ ein</p>
<pre><code>bool b = irgendwas;
</code></pre>
<p>eigentlich immer ein</p>
<pre><code>bool b = (irgendwas != 0);
</code></pre>
<p>ist?<br />
(wobei 'irgendwas' nicht 0 oder false sein darf)<br />
wenn ja, dann findet doch keine typumwandlung statt.<br />
das würde mich wieder besänftigen, auch wenn 'cout' darunter zu leiden hat <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/1322288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322288</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:22:12 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 13:26:48 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>bedeutet das, dass in C++ ein</p>
<pre><code>bool b = irgendwas;
</code></pre>
<p>eigentlich immer ein</p>
<pre><code>bool b = (irgendwas != 0);
</code></pre>
<p>ist?<br />
(wobei 'irgendwas' nicht 0 oder false sein darf)<br />
wenn ja, dann findet doch keine typumwandlung statt.</p>
</blockquote>
<p>Wenn Du meinst … wie dem auch sei, das Resultat ist dasselbe; nämlich die Umwandlung eines Werts in ein Boolean.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322293</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 17:13:15 GMT]]></title><description><![CDATA[<p>back to Topic.</p>
<p>Ich finde cout wesentlich übersichtlicher und sauberer, als printf, weil es alles in eine Klassenhirachie gepackt hat. Man hat auch die Möglichket durch die übergabe von Manipulatoren, die Ausgabe zu formatieren. Un man kann für seine klassen den &lt;&lt; Operator der klasse ostream überschreiben, was später zu einem übersichtlicherem code führt, als würde man sich eine toC_String Methode schreiben, und die dann bei jedem printf aufruf manuell aufrufen. Ja und printf ist C, kann also nicht mit Strings umgehen. Ich finde, wer C++ programmiert, und nicht C, der ist mit cout besser bedient. Ich finde es gibt kaum gründe, weshalb man printf verteidigen sollte, ausser vieleicht die geschwindigkeit, aber die ist ja bei der geringen menge, die auf die Konsole passt ja doch eher unwichtig, man sollte besser schauen, an welchen anderen stellen man sein programm dann optimieren kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322534</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Tue, 10 Jul 2007 17:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 17:29:36 GMT]]></title><description><![CDATA[<p>ich finde cout wesentlich lahmerer als printf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322539</guid><dc:creator><![CDATA[btt]]></dc:creator><pubDate>Tue, 10 Jul 2007 17:29:36 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Frage, betreffs &amp;quot;printf&amp;quot; und &amp;quot;cout&amp;quot; on Tue, 10 Jul 2007 17:44:34 GMT]]></title><description><![CDATA[<p>Der eigentliche Witz ist, dass cout schneller sein sollte als printf, weil printf jedesmal den Formatstring interpretiert, während bei IOStreams alles statisch ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322547</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 10 Jul 2007 17:44:34 GMT</pubDate></item></channel></rss>