<?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[warnung bei printf: int &amp;lt;-&amp;gt; size_t]]></title><description><![CDATA[<p>Hallo<br />
Ich kriege beim kompilieren mit g++ 4.1.2 (Red Hat) auf einer 64bit maschine<br />
massenweise Fehlermeldungen der Art:<br />
format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’<br />
Das betrifft meistens eine printf()-Anweisung.</p>
<p>Was muss ich tun. um diese Warnungen loszuwerden?<br />
Soviel ich weiss, ist size_t ein typedef fuer einen int,<br />
darum ist das ganze etwas merkwuerdig.</p>
<p>Diese Warnungen treten uebrigens nicht auf, wen ich den selben<br />
code mit g++ 4.1.2 auf einer 32bit Mschine kompiliere.</p>
<p>Danke<br />
Jody</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210352/warnung-bei-printf-int-lt-gt-size_t</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 11:38:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210352.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Apr 2008 08:29:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to warnung bei printf: int &amp;lt;-&amp;gt; size_t on Thu, 10 Apr 2008 08:29:02 GMT]]></title><description><![CDATA[<p>Hallo<br />
Ich kriege beim kompilieren mit g++ 4.1.2 (Red Hat) auf einer 64bit maschine<br />
massenweise Fehlermeldungen der Art:<br />
format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’<br />
Das betrifft meistens eine printf()-Anweisung.</p>
<p>Was muss ich tun. um diese Warnungen loszuwerden?<br />
Soviel ich weiss, ist size_t ein typedef fuer einen int,<br />
darum ist das ganze etwas merkwuerdig.</p>
<p>Diese Warnungen treten uebrigens nicht auf, wen ich den selben<br />
code mit g++ 4.1.2 auf einer 32bit Mschine kompiliere.</p>
<p>Danke<br />
Jody</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489510</guid><dc:creator><![CDATA[jody]]></dc:creator><pubDate>Thu, 10 Apr 2008 08:29:02 GMT</pubDate></item><item><title><![CDATA[Reply to warnung bei printf: int &amp;lt;-&amp;gt; size_t on Thu, 10 Apr 2008 08:40:00 GMT]]></title><description><![CDATA[<p>std::size_t ist ein typedef auf unsigned int, also kein normales int... aber das muss nicht immer so sein, je nach maschine kann sich auch ein anderer typ dahinter verbergen.</p>
<p>Lösung: da wir im C++ Forum sind,printf nicht verwenden, stattdessen cout etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489517</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 10 Apr 2008 08:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to warnung bei printf: int &amp;lt;-&amp;gt; size_t on Thu, 10 Apr 2008 08:39:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>size_t ist eher ein unsigned int. Die Warnung wirst du los indem du die Variable mittels static_cast in einen int castest oder indem du statt %d %u nimmst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489518</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 10 Apr 2008 08:39:18 GMT</pubDate></item><item><title><![CDATA[Reply to warnung bei printf: int &amp;lt;-&amp;gt; size_t on Thu, 10 Apr 2008 08:51:21 GMT]]></title><description><![CDATA[<p>Für size_t gibt es die Formatangabe %z. Vielleicht erst ab C99, aber bei deiner Konfiguration sollte das passen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489527</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 10 Apr 2008 08:51:21 GMT</pubDate></item><item><title><![CDATA[Reply to warnung bei printf: int &amp;lt;-&amp;gt; size_t on Thu, 10 Apr 2008 09:48:45 GMT]]></title><description><![CDATA[<p>Danke fuer die tips.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a>: das %u hat leider nichts geaendert.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a>: mit %z meldet mein compiler auf der 64bit Maschine:</p>
<pre><code>floattest.cpp:29: warning: unknown conversion type character 0xa in format
floattest.cpp:29: warning: too many arguments for format
</code></pre>
<p>auf der 32bit maschine kompiliert es zwar, aber es funktioniert nicht richtig:<br />
das code-stueck (v ist ein vector&lt;int&gt;)</p>
<pre><code>printf(&quot;mit %%z: %z\n&quot;, v.size());
</code></pre>
<p>liefert</p>
<pre><code>mit %z: %
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5202">@otze</a>: hast ja recht, aber ich finde es z.T. recht muehsam,<br />
kompliziertere Formatierungen mit cout zu machen .<br />
Beispiel: um mit printf eine Reihe von floats mit jeweils<br />
2 Nachkommastellen anzuzeigen, mache ich einfach</p>
<pre><code>printf(&quot;f1 : %.2f, f2: %.2f, f3:%.2f, f4: %.2f\n&quot;, f1, f2, f3, f4);
</code></pre>
<p>dabei spielt es keine Rolle wie gross die floats sind.</p>
<p>Aber wie muesste ich das mit cout machen?<br />
Vielleicht habe ich den Stroustrup falsch verstanden,<br />
aber die Genauigkeit fuer eine float-Darstellung muss<br />
ich mittels cout.precision() angeben,<br />
aber das betrifft dann die gesamte Anzahl von Stellen,<br />
nicht die Nachkommastellen, d.h. um 12.34 zu erhalten,<br />
muss ich die precision 4 nehmen, aber fuer 9876.54<br />
muesste ich 6 nehmen.<br />
M.a.W. ich muesste von jeder Zahl<br />
zuerst die Anzahl Stellen vor dem Komma ermitteln, um so<br />
einen geeigneten Wert fuer die precision zu kriegen.</p>
<p>Oder gibt es evtl. praktischere Formatierungs-Methoden als<br />
cout.precision?</p>
<p>Jody</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489552</guid><dc:creator><![CDATA[jody]]></dc:creator><pubDate>Thu, 10 Apr 2008 09:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to warnung bei printf: int &amp;lt;-&amp;gt; size_t on Thu, 10 Apr 2008 13:03:07 GMT]]></title><description><![CDATA[<p>wenn du alles in fixpunkt schreibweise angeben willst (also nichts in der art 1e-10 ), dann kannst du vor dem precision noch ein fixed setzen, danach bezieht sich precision auf die Nachkommastellen.</p>
<p><a href="http://www.cplusplus.com/reference/iostream/manipulators/fixed.html" rel="nofollow">http://www.cplusplus.com/reference/iostream/manipulators/fixed.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489718</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 10 Apr 2008 13:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to warnung bei printf: int &amp;lt;-&amp;gt; size_t on Fri, 11 Apr 2008 07:23:11 GMT]]></title><description><![CDATA[<p><a href="http://www.boost.org/libs/format" rel="nofollow">Boost.Format</a> könnte helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490140</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 11 Apr 2008 07:23:11 GMT</pubDate></item></channel></rss>