<?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[fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get()]]></title><description><![CDATA[<p>Halli Hallo</p>
<p>Ich hätte da mal eine kleine Frage.</p>
<p>Kann mir jemand den Unterschied in der Verwendung von:<br />
a) dem überladenen Operator &gt;&gt;<br />
und<br />
b) der Methode get(); <a href="http://www.cplusplus.com/ref/iostream/istream/get.html" rel="nofollow">http://www.cplusplus.com/ref/iostream/istream/get.html</a></p>
<p>Also am besten noch ein Bsp:</p>
<p>a)</p>
<pre><code>while([b]f_stream &gt;&gt; chTemp[/b] &amp;&amp; iBytesToRead &gt; 0)
	{
		std::cout &lt;&lt; std::uppercase &lt;&lt;  std::hex &lt;&lt; static_cast&lt;int&gt;(chTemp) &lt;&lt; &quot; &quot;;
		iBytesToRead--;
	}
</code></pre>
<p>b)</p>
<pre><code>while([b]f_stream.get(chTemp)[/b] &amp;&amp; iBytesToRead &gt; 0)
	{
		std::cout &lt;&lt; std::uppercase &lt;&lt;  std::hex &lt;&lt; static_cast&lt;int&gt;(chTemp) &lt;&lt; &quot; &quot;;
		iBytesToRead--;
	}
</code></pre>
<p>bei a) gibts die Ausgabe: 89 50 4E 47 1A 0 0 0<br />
und bei b) 89 50 4E D A 1A A</p>
<p>wie kommt der Unterschied zustande? die Ausgabe von b) entspricht dem Inhalt der Datei!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168938/fstream-unterschied-zwischen-gt-gt-und-get</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 15:35:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168938.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 29 Dec 2006 20:56:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get() on Fri, 29 Dec 2006 20:56:52 GMT]]></title><description><![CDATA[<p>Halli Hallo</p>
<p>Ich hätte da mal eine kleine Frage.</p>
<p>Kann mir jemand den Unterschied in der Verwendung von:<br />
a) dem überladenen Operator &gt;&gt;<br />
und<br />
b) der Methode get(); <a href="http://www.cplusplus.com/ref/iostream/istream/get.html" rel="nofollow">http://www.cplusplus.com/ref/iostream/istream/get.html</a></p>
<p>Also am besten noch ein Bsp:</p>
<p>a)</p>
<pre><code>while([b]f_stream &gt;&gt; chTemp[/b] &amp;&amp; iBytesToRead &gt; 0)
	{
		std::cout &lt;&lt; std::uppercase &lt;&lt;  std::hex &lt;&lt; static_cast&lt;int&gt;(chTemp) &lt;&lt; &quot; &quot;;
		iBytesToRead--;
	}
</code></pre>
<p>b)</p>
<pre><code>while([b]f_stream.get(chTemp)[/b] &amp;&amp; iBytesToRead &gt; 0)
	{
		std::cout &lt;&lt; std::uppercase &lt;&lt;  std::hex &lt;&lt; static_cast&lt;int&gt;(chTemp) &lt;&lt; &quot; &quot;;
		iBytesToRead--;
	}
</code></pre>
<p>bei a) gibts die Ausgabe: 89 50 4E 47 1A 0 0 0<br />
und bei b) 89 50 4E D A 1A A</p>
<p>wie kommt der Unterschied zustande? die Ausgabe von b) entspricht dem Inhalt der Datei!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1199670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1199670</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Fri, 29 Dec 2006 20:56:52 GMT</pubDate></item><item><title><![CDATA[Reply to fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get() on Fri, 29 Dec 2006 23:29:40 GMT]]></title><description><![CDATA[<p>Top se schrieb:</p>
<blockquote>
<p>bei a) gibts die Ausgabe: 89 50 4E 47 1A 0 0 0<br />
und bei b) 89 50 4E D A 1A A</p>
<p>wie kommt der Unterschied zustande? die Ausgabe von b) entspricht dem Inhalt der Datei!</p>
</blockquote>
<p>Bei a) liest Du formatiert ein und bei b) unformatiert, d.h. Byte für Byte, daher entspricht dies dem (binären) Inhalt der Datei.<br />
Beim formatierten Einlesen werden sogenannte 'whitespace'-Zeichen überlesen, wenn das skipws-Flag gesetzt ist (Default beim std::istream). Zu den 'whitespace'-Zeichen gehören auch 0xD (CR) und 0xA (LF) was z.B. bei DOS-Text-Dateien das Zeilenende ist. Auch können beim formatierten Einlesen Konvertierungen je nach verwendeter locale durchgeführt werden.</p>
<p>Das erklärt aber nicht die 0x47 ('G') im Fall a) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1199724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1199724</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 29 Dec 2006 23:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get() on Sat, 30 Dec 2006 19:48:10 GMT]]></title><description><![CDATA[<p>danke, das war ne perfekte Erklärung, vielen Dank!</p>
<blockquote>
<p>Das erklärt aber nicht die 0x47 ('G') im Fall a)</p>
</blockquote>
<p>ähm, ja, das habsch bei b) vergessen, also ist das auch geklärt *gg*</p>
<p>Aber noch ne andere Frage, wie kann ich unsigned char mit fstream`s nutzen, z.B.:</p>
<pre><code>image_stream.get(chTemp)
</code></pre>
<p>wenn hier chTemp vom Typ unsigned char ist, dann gibts nen groben Fehler:</p>
<blockquote>
<p>error C2664: 'std::basic_istream&lt;_Elem,_Traits&gt; &amp;std::basic_istream&lt;_Elem,_Traits&gt;::get(_Elem &amp;)' : cannot convert parameter 1 from 'unsigned char' to 'char &amp;'</p>
</blockquote>
<p>Ich muss folgendes machen (thx <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@codefinder</a> *g*):</p>
<pre><code>image_stream.get(reinterpret_cast&lt;char &amp;&gt;(chTemp)
</code></pre>
<p>aber das gefällt mir eigentl nciht so richtig, weil z.B. wenn ich Dateien lesen will, deren Bytes (im hexadezimalsystem) größer als 0x80 (&gt;128 dec) sind, dann platzt der normale char und ich bekomme beim Auslesen Probleme, deshalb brauche ich unsigned chars, aber die immer so zu casten, ist nicht so prima *gg*.</p>
<p>Ähm, kann mir das einer von euch erklären, ich würde mich freuen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200052</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Sat, 30 Dec 2006 19:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get() on Sat, 30 Dec 2006 19:57:19 GMT]]></title><description><![CDATA[<p>Du kannst versuchen, deinen filestream mit unsigned char zu öffnen.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;string&gt; // für char_traits

typedef basic_fstream&lt;unsigned char, std::char_traits&lt;unsigned char&gt; &gt; filestream;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1200058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200058</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sat, 30 Dec 2006 19:57:19 GMT</pubDate></item><item><title><![CDATA[Reply to fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get() on Tue, 02 Jan 2007 09:36:26 GMT]]></title><description><![CDATA[<p>Ein frohes neues Jahr wünsch ich euch allen!</p>
<p>@ .filmor</p>
<p>wenn ich diese Zeile (typedef ...) so wie sie dort steht bei mir in mein Projekt einfüge, dann bekomme ich diese beiden Fehlermeldungen:</p>
<blockquote>
<p>...\c_png.h(16) : error C2143: syntax error : missing ';' before '&lt;'<br />
...\c_png.h(16) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int</p>
</blockquote>
<p>Ich verwende VC++ 2005 Express Ed.</p>
<p>Aber wenn es so gehen würde, wäre das priam, danke schonmal für den Tipp!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200978</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Tue, 02 Jan 2007 09:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get() on Tue, 02 Jan 2007 09:37:41 GMT]]></title><description><![CDATA[<p>Da fehlt wohl ein &quot;std::&quot; am Anfang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200980</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 02 Jan 2007 09:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to fstream - Unterschied zwischen &amp;gt;&amp;gt; und *.get() on Tue, 02 Jan 2007 09:48:39 GMT]]></title><description><![CDATA[<p>danke, die Antwort kam ja rasant und hat mir auch geholfen, dankeschön!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1200989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1200989</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Tue, 02 Jan 2007 09:48:39 GMT</pubDate></item></channel></rss>