<?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[Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist]]></title><description><![CDATA[<p>Abend,</p>
<p>heute mal eine etwas merkwürdige Thematik: Ich habe zwei Textdateien, foo.txt und bar.txt. Ich schreibe den Inhalt von foo nach bar und vice versa. Was ich nun nicht verstehe, ist, warum sich die Dateigröße hochschaukelt, obwohl der Dateiinhalt immer derselbe ist. Kann mir das jemand erklären?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;iterator&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	{
		wifstream in(&quot;foo.txt&quot;,std::ios_base::binary);
    	wstring content( istream_iterator&lt;wchar_t,wchar_t&gt;(in&gt;&gt;noskipws), istream_iterator&lt;wchar_t,wchar_t&gt;() );
    	wofstream out(&quot;bar.txt&quot;);
    	out &lt;&lt; content;
	}

	{
		wifstream in(&quot;bar.txt&quot;,std::ios_base::binary);
    	wstring content( istream_iterator&lt;wchar_t,wchar_t&gt;(in&gt;&gt;noskipws), istream_iterator&lt;wchar_t,wchar_t&gt;() );
    	wofstream out(&quot;foo.txt&quot;);
    	out &lt;&lt; content;
	}
}
</code></pre>
<p>Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302073/dateigröße-wächst-stetig-an-obwohl-der-inhalt-immer-derselbe-ist</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 14:09:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302073.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Apr 2012 18:31:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist on Tue, 10 Apr 2012 18:31:30 GMT]]></title><description><![CDATA[<p>Abend,</p>
<p>heute mal eine etwas merkwürdige Thematik: Ich habe zwei Textdateien, foo.txt und bar.txt. Ich schreibe den Inhalt von foo nach bar und vice versa. Was ich nun nicht verstehe, ist, warum sich die Dateigröße hochschaukelt, obwohl der Dateiinhalt immer derselbe ist. Kann mir das jemand erklären?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;iterator&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	{
		wifstream in(&quot;foo.txt&quot;,std::ios_base::binary);
    	wstring content( istream_iterator&lt;wchar_t,wchar_t&gt;(in&gt;&gt;noskipws), istream_iterator&lt;wchar_t,wchar_t&gt;() );
    	wofstream out(&quot;bar.txt&quot;);
    	out &lt;&lt; content;
	}

	{
		wifstream in(&quot;bar.txt&quot;,std::ios_base::binary);
    	wstring content( istream_iterator&lt;wchar_t,wchar_t&gt;(in&gt;&gt;noskipws), istream_iterator&lt;wchar_t,wchar_t&gt;() );
    	wofstream out(&quot;foo.txt&quot;);
    	out &lt;&lt; content;
	}
}
</code></pre>
<p>Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200543</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 10 Apr 2012 18:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist on Tue, 10 Apr 2012 18:55:47 GMT]]></title><description><![CDATA[<p>Nach <strong>jedem</strong> Aufruf wird die Datei größer? Ich hätte jetzt nämlich im Verdacht, dass ein Konflikt zwischen der Zeichencodierung der Datei und der Zeichencodierung deiner Streams vorliegt. Aber das sollte nur einmalig etwas ändern, danach sollte es schließlich passen. Vielleicht übersehe ich auch gerade irgendeine verrückte Möglichkeit.</p>
<p>Jedenfalls kannst du mittels imbue den Streams eine locale andrehen. Ich muss zum Beispiel bei meinem System dein Programm wie folgt abändern, damit es überhaupt eine UTF-8-Datei mit Sonderzeichen korrekt behandelt (meine Systemlokale (&quot;&quot;) benutzt UTF-8, die Standardlocale (&quot;C&quot;) kommt damit bekannterweise nicht zurecht):</p>
<pre><code class="language-cpp">int main()
{
  locale mylocale(&quot;&quot;); 
    {
        wifstream in(&quot;foo.txt&quot;,std::ios_base::binary);
        in.imbue(mylocale);
        wstring content( istream_iterator&lt;wchar_t,wchar_t&gt;(in&gt;&gt;noskipws), istream_iterator&lt;wchar_t,wchar_t&gt;() );
        wofstream out(&quot;bar.txt&quot;);
        out.imbue(mylocale);
        out &lt;&lt; content;
    }

    {
        wifstream in(&quot;bar.txt&quot;,std::ios_base::binary);
        in.imbue(mylocale);
        wstring content( istream_iterator&lt;wchar_t,wchar_t&gt;(in&gt;&gt;noskipws), istream_iterator&lt;wchar_t,wchar_t&gt;() );
        wofstream out(&quot;foo.txt&quot;);
        out.imbue(mylocale);
        out &lt;&lt; content;
    }
}
</code></pre>
<p>Da kannst du ja mal die passende Zeichencodierung für deine Datei angeben (falls deine Systemlocale nicht zur Dateilocale passt) und gucken, ob der Fehler immer noch auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200558</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 10 Apr 2012 18:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist on Tue, 10 Apr 2012 19:50:21 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Nach <strong>jedem</strong> Aufruf wird die Datei größer?</p>
</blockquote>
<p>Richtig.</p>
<p>Ich lege z.B. die Datei foo.txt an und schreibe hinein:</p>
<pre><code>a
b
c
</code></pre>
<p>Dann lege ich eine leere bar.txt an. Lasse ich das Programm 1x durchlaufen, hat foo 11Bytes und bar 13Bytes. Nach insgesamt 3 Programmdurchläufen hat foo 19Bytes und bar 21Bytes, etc.</p>
<p>Ich habe dein Beispiel versucht, sowohl mit <code>&quot;&quot;</code> als auch mit <code>&quot;C&quot;</code> , es hat sich jedoch nichts verändert. Es spielt auch keine Rolle, ob ich <code>mit wchar_t</code> oder <code>char</code> arbeite, der Effekt ist derselbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200575</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 10 Apr 2012 19:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist on Tue, 10 Apr 2012 20:03:43 GMT]]></title><description><![CDATA[<p>Ach klar, jetzt wo du die konkreten Zahlen nennst sehe ich es: Du liest binary, schreibst aber nicht binary. In Windows gibt das einen Unterschied von einem Zeichen bei Zeilenumbrüchen. Daher konnte ich den Fehler bei mir auch nicht nachvollziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200579</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 10 Apr 2012 20:03:43 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist on Tue, 10 Apr 2012 20:16:35 GMT]]></title><description><![CDATA[<p>Kleiner Tipp am Rande:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;

int main() {
  std::wifstream in (&quot;foo.txt&quot;, std::ios::binary);
  std::wofstream out(&quot;bar.txt&quot;, std::ios::binary);

  out &lt;&lt; in.rdbuf();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2200590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200590</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Tue, 10 Apr 2012 20:16:35 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist on Tue, 10 Apr 2012 20:17:09 GMT]]></title><description><![CDATA[<p>Um genau zu sein ist es so: (ich zitiere einfach mal <a href="http://www.c-plusplus.net/forum/p2199823#2199823" rel="nofollow">http://www.c-plusplus.net/forum/p2199823#2199823</a>)</p>
<p>seldon schrieb:</p>
<blockquote>
<p>Unter Windows werden Textdateien so behandelt, dass Zeilenenden durch &quot;\r\n&quot; dargestellt werden (also zwei Zeichen). Wenn du die Datei im Textmodus öffnest, übernimmt das System die Umwandlung für dich, mit ios::binary kriegst du den Kram halt in Rohfassung und müsstest das \r selbst ignorieren. \r bedeutet &quot;geh wieder zum Anfang der Zeile zurück&quot;, und das führt natürlich zu seltsamer Ausgabe, wenn man es einfach drinlässt.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2200591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200591</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Tue, 10 Apr 2012 20:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße wächst stetig an, obwohl der Inhalt immer derselbe ist on Fri, 13 Apr 2012 05:16:05 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ach klar, jetzt wo du die konkreten Zahlen nennst sehe ich es: Du liest binary, schreibst aber nicht binary.</p>
</blockquote>
<p>Ah nun sehe ich es auch, da hat sich nun bei jedem Schreiben für jeden Zeilenumbruch ein zusätzliches <code>\r</code> reingemogelt. Da ich ja zwei Zeilenumbrüche hatte, erklärt das immer die zwei zusätzlichen Bytes. Danke euch <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/2201411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2201411</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 Apr 2012 05:16:05 GMT</pubDate></item></channel></rss>