<?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[ifstream Konstruktor]]></title><description><![CDATA[<p>Der ifstream Konstruktor hat ein Defaultparameter:</p>
<pre><code class="language-cpp">explicit ifstream ( const char * filename, ios_base openmode mode = ios_base::in);
</code></pre>
<p>Wenn ich nun binär Lesen möchte, muss ich dann immer <code>ios_base::binary</code> mit <code>ios_base::in</code> verknüpfen? Weil, wenn ich nur</p>
<pre><code class="language-cpp">ifstream in(&quot;x.y&quot;,ios_base::binary);
</code></pre>
<p>mache, geht die <code>ios_base::in</code> Information ja verloren.</p>
<p>Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/299752/ifstream-konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 03:12:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/299752.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Feb 2012 17:04:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 17:09:18 GMT]]></title><description><![CDATA[<p>Der ifstream Konstruktor hat ein Defaultparameter:</p>
<pre><code class="language-cpp">explicit ifstream ( const char * filename, ios_base openmode mode = ios_base::in);
</code></pre>
<p>Wenn ich nun binär Lesen möchte, muss ich dann immer <code>ios_base::binary</code> mit <code>ios_base::in</code> verknüpfen? Weil, wenn ich nur</p>
<pre><code class="language-cpp">ifstream in(&quot;x.y&quot;,ios_base::binary);
</code></pre>
<p>mache, geht die <code>ios_base::in</code> Information ja verloren.</p>
<p>Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182396</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 17 Feb 2012 17:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:22:54 GMT]]></title><description><![CDATA[<p>edit: falsch, siehe unten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182398</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 18:14:43 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Der Ifstreamkonstuktor kann nicht zaubern und auf magische Weise den Parameter noch mit dem Defaultparameter verknüpfen.</p>
</blockquote>
<p>kurz gesagt: Ja.</p>
<p>Danke dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182423</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 17 Feb 2012 18:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 18:26:28 GMT]]></title><description><![CDATA[<p>Hallo SeppJ,</p>
<p>doch, ifstream und ofstream zaubern <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>
<p>Bei denen ist explizit immer das Flag ios_base::in bzw: ios_base::out gesetzt (auch wenn man es nicht angibt, d.h. intern wird immer eine Oder-Verknüpfung durchgeführt - der Default-Parameter ist quasi nur ein Hinweis darauf, d.h. technisch sogar überflüssig).</p>
<p>Ich habe dies selber schon öfters so genutzt. Und als Referenz im Internet habe ich <a href="http://stdcxx.apache.org/doc/stdlibug/30-3.html" rel="nofollow">http://stdcxx.apache.org/doc/stdlibug/30-3.html</a> (30.3.1.1 The in and out Open Modes) dazu gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182428</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 17 Feb 2012 18:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 18:43:09 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>Bei denen ist explizit immer das Flag ios_base::in bzw: ios_base::out gesetzt (auch wenn man es nicht angibt, d.h. intern wird immer eine Oder-Verknüpfung durchgeführt - der Default-Parameter ist quasi nur ein Hinweis darauf, d.h. technisch sogar überflüssig).</p>
</blockquote>
<p>Ups, stimmt. Klausel 27.9.1.7.2 im Standard:</p>
<blockquote>
<p><em><em>explicit basic_ifstream(const char</em> s,<br />
ios_base::openmode mode = ios_base::in);</em>*</p>
<p>Effects: Constructs an object of class basic_ifstream, initializing the base class with basic_-istream(&amp;sb) and initializing sb with basic_filebuf&lt;charT, traits&gt;()) (27.7.2.1.1, 27.9.1.2), <strong>then calls rdbuf()-&gt;open(s, mode | ios_base::in)</strong>. If that function returns a null pointer, calls<br />
setstate(failbit).</p>
</blockquote>
<p>Hervorhebung durch mich. @gugelmoser, entschuldige die voreilige Antwort, man sollte bei solchen Fragen echt den Standard nochmal explizit lesen, anstatt das zu antworten, an das man meinst sich zu erinnern.<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18594">@Th69</a>: Der Defaultparameter ist dazu da, damit man auch einfach gar nix angeben kann. Hätte man natürlich auch durch Überladung lösen können, hat man hier eben mit Defaultparametern gemacht. Spart einen Absatz im Standard <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/2182438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182438</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Feb 2012 18:43:09 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:04:18 GMT]]></title><description><![CDATA[<p>SeppJ, lösch deine 1. Antwort oder verweise auf die richtige Antwort hin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182444</guid><dc:creator><![CDATA[DankeBitte]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:15:01 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Th69 schrieb:</p>
<blockquote>
<p>Bei denen ist explizit immer das Flag ios_base::in bzw: ios_base::out gesetzt (auch wenn man es nicht angibt, d.h. intern wird immer eine Oder-Verknüpfung durchgeführt - der Default-Parameter ist quasi nur ein Hinweis darauf, d.h. technisch sogar überflüssig).</p>
</blockquote>
<p>Ups, stimmt. Klausel 27.9.1.7.2 im Standard:</p>
<blockquote>
<p><em><em>explicit basic_ifstream(const char</em> s,<br />
ios_base::openmode mode = ios_base::in);</em>*</p>
<p>Effects: Constructs an object of class basic_ifstream, initializing the base class with basic_-istream(&amp;sb) and initializing sb with basic_filebuf&lt;charT, traits&gt;()) (27.7.2.1.1, 27.9.1.2), <strong>then calls rdbuf()-&gt;open(s, mode | ios_base::in)</strong>. If that function returns a null pointer, calls<br />
setstate(failbit).</p>
</blockquote>
<p>Hervorhebung durch mich. @gugelmoser, entschuldige die voreilige Antwort, man sollte bei solchen Fragen echt den Standard nochmal explizit lesen, anstatt das zu antworten, an das man meinst sich zu erinnern.<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18594">@Th69</a>: Der Defaultparameter ist dazu da, damit man auch einfach gar nix angeben kann. Hätte man natürlich auch durch Überladung lösen können, hat man hier eben mit Defaultparametern gemacht. Spart einen Absatz im Standard <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>Kein Ding <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="😉"
    /> Ich finde es aber trotzdem schöner, wenn man es mit angibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182450</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:15:01 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:18:47 GMT]]></title><description><![CDATA[<p>Da ich dafür kein neues Thema anfangen will:<br />
Benutzt ihr eigentlich explizit ofstream/ifstream oder fstream(.., ios::in und/oder ios::out)? Da gibt's doch keinen Unterschied, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182452</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:18:47 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:26:27 GMT]]></title><description><![CDATA[<p>Incocnito schrieb:</p>
<blockquote>
<p>Da gibt's doch keinen Unterschied, oder?</p>
</blockquote>
<p>Doch. i(f)stream und o(f)stream haben jeweils keine Methoden zum Schreiben bzw. Lesen. Nur wenn ich beides brauche nehme ich auch das, was beides kann. So wird bei Benutzung von fstream auch singalisiert, dass man beides benutzen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182457</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:47:19 GMT]]></title><description><![CDATA[<p>Bei manchen Sachen muss man ios::in für ofstream angeben, z.B.:<br />
test.txt: Ich habe 2 Euro. --&gt; Nun will ich die 2 durch eine andere Zahl ersetzen. Wenn ich ios::in nicht angebe, funktioniert es nicht.</p>
<pre><code class="language-cpp">ofstream stream(&quot;test.txt&quot;,ios::out|ios::in);

	if( !stream.is_open() )
	{
		cerr &lt;&lt; &quot;Error&quot;;
		return -1;
	}

	stream.seekp(9,ios::beg);
	stream &lt;&lt; '5';
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2182466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182466</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:47:19 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:49:58 GMT]]></title><description><![CDATA[<p>Logisch, Du nutzt hier ja auch einen ofstream, der nicht für Eingabe gedacht ist. Für beides zusammen kannst Du fstream nutzen, der hat dann automatisch beide Flags gesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182469</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:49:58 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 19:54:36 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Logisch, Du nutzt hier ja auch einen ofstream, der nicht für Eingabe gedacht ist.</p>
</blockquote>
<p>Eingabe? Ich lese nichts ein, ich gebe etwas aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182470</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 17 Feb 2012 19:54:36 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 20:02:47 GMT]]></title><description><![CDATA[<p>Hm, stimmt, habe das ersetzen mit &quot;suchen + ersetzen&quot; verwechselt. Allerdings navigierst Du eben über bereits erkundetes Terrain, weswegen ich glaube, dass er intern liest, aber eben nichts davon rausrückt. Er muss ja auch wissen, ob der pointer überhaupt an eine gültige Stelle zeigt. Aber ist pure Vermutung, daher nicht für bare Münze nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182472</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Fri, 17 Feb 2012 20:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 20:07:51 GMT]]></title><description><![CDATA[<p>Der openmode geht einfach an den unterliegenden basic_filebuf. Der ist sowieso bei ifstream und ofstream der gleiche. Und <code>in | out</code> heißt für diesen eben nach klassisch C übersetzt &quot;r+&quot; oder zu Deutsch: Lesen und Schreiben möglich, Inhalt nicht löschen. Dadurch bekommt der ofstream aber keine Lesefähigkeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182473</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Feb 2012 20:07:51 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream Konstruktor on Fri, 17 Feb 2012 20:07:59 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Hm, stimmt, habe das ersetzen mit &quot;suchen + ersetzen&quot; verwechselt. Allerdings navigierst Du eben über bereits erkundetes Terrain, weswegen ich glaube, dass er intern liest, aber eben nichts davon rausrückt. Er muss ja auch wissen, ob der pointer überhaupt an eine gültige Stelle zeigt.</p>
</blockquote>
<p>Nein, auch daran liegt es nicht.</p>
<blockquote>
<p>ios_base::out by itself causes truncation but that it doesn't cause truncation when it is combined</p>
</blockquote>
<p>D.h. <code>ios::out</code> für sich alleine bedeutet immer <code>ios::out|ios::trunc</code> , außer wenn es mit einem anderen Flag verknüpft wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2182474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182474</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 17 Feb 2012 20:07:59 GMT</pubDate></item></channel></rss>