<?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[&amp;quot;operator&amp;gt;&amp;gt; (std::istream&amp;amp;, unsigned int&amp;amp;)&amp;quot; Fehlerhaft???]]></title><description><![CDATA[<p>Hallo,<br />
uns ist heute aufgefallen, dass der &quot;operator&gt;&gt;(std::istream&amp;, unsigned int&amp;)&quot; häufig nicht so funktioniert, wie erwartet. Folgendes Beispiel:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;sstream&gt;

int main(int argc, char* argv[])
{
  std::istringstream s(&quot;-1&quot;);
  unsigned int n;
  s &gt;&gt; n;
  if (s)
    std::cout &lt;&lt; &quot;n=&quot; &lt;&lt; n &lt;&lt; std::endl;
  else
    std::cout &lt;&lt; &quot;failed&quot; &lt;&lt; std::endl;
}
</code></pre>
<p>liefert mit den meisten Compilern <code>n=4294967295</code> statt einfach fehl zu schlagen. Getestet habe ich gcc 4.7.2, xlc 9.0 auf AIX, SunStudio mit RW und stlport library auf Solaris. Lediglich der SunStudio mit RW-library hat &quot;failed&quot; ausgegeben. Es hat mich doch sehr irritiert, dass 3 von 4 Implementierungen der Standardbibliothek fehlerhaft sein sollten. Und ein älterer gcc (4.1 glaube ich) war auch noch dabei.</p>
<p>Hat jemand eine Erklärung dafür?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310831/quot-operator-gt-gt-std-istream-amp-unsigned-int-amp-quot-fehlerhaft</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 05:35:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310831.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Nov 2012 20:21:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;operator&amp;gt;&amp;gt; (std::istream&amp;amp;, unsigned int&amp;amp;)&amp;quot; Fehlerhaft??? on Tue, 20 Nov 2012 20:21:15 GMT]]></title><description><![CDATA[<p>Hallo,<br />
uns ist heute aufgefallen, dass der &quot;operator&gt;&gt;(std::istream&amp;, unsigned int&amp;)&quot; häufig nicht so funktioniert, wie erwartet. Folgendes Beispiel:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;sstream&gt;

int main(int argc, char* argv[])
{
  std::istringstream s(&quot;-1&quot;);
  unsigned int n;
  s &gt;&gt; n;
  if (s)
    std::cout &lt;&lt; &quot;n=&quot; &lt;&lt; n &lt;&lt; std::endl;
  else
    std::cout &lt;&lt; &quot;failed&quot; &lt;&lt; std::endl;
}
</code></pre>
<p>liefert mit den meisten Compilern <code>n=4294967295</code> statt einfach fehl zu schlagen. Getestet habe ich gcc 4.7.2, xlc 9.0 auf AIX, SunStudio mit RW und stlport library auf Solaris. Lediglich der SunStudio mit RW-library hat &quot;failed&quot; ausgegeben. Es hat mich doch sehr irritiert, dass 3 von 4 Implementierungen der Standardbibliothek fehlerhaft sein sollten. Und ein älterer gcc (4.1 glaube ich) war auch noch dabei.</p>
<p>Hat jemand eine Erklärung dafür?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272911</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Tue, 20 Nov 2012 20:21:15 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;operator&amp;gt;&amp;gt; (std::istream&amp;amp;, unsigned int&amp;amp;)&amp;quot; Fehlerhaft??? on Tue, 20 Nov 2012 20:33:28 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>Hat jemand eine Erklärung dafür?</p>
</blockquote>
<p>Ja. Das soll so sein. It's not a bug, it's a feature!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272921</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 20 Nov 2012 20:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;operator&amp;gt;&amp;gt; (std::istream&amp;amp;, unsigned int&amp;amp;)&amp;quot; Fehlerhaft??? on Tue, 20 Nov 2012 20:36:40 GMT]]></title><description><![CDATA[<pre><code>unsigned int a = -1;
</code></pre>
<p>funktioniert auch. Siehe:</p>
<p>4.7.2 schrieb:</p>
<blockquote>
<p>If the destination type is unsigned, the resulting value is the least unsigned integer congruent to the source integer (modulo 2^n where n is the number of bits used to represent the unsigned type). [ Note: In a two’s complement representation, this conversion is conceptual and there is no change in the bit pattern (if there is no truncation).</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2272922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272922</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 20 Nov 2012 20:36:40 GMT</pubDate></item></channel></rss>