<?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[Problem mit binär Einlesen&amp;amp;Ausgeben]]></title><description><![CDATA[<p>Hallo miteinander.</p>
<p>Ich beschäftige mich erst seit ein paar Wochen mit C++, von daher bitte &quot;verständliche&quot; Hilfen.<br />
Zum Problem, der nachfolgende Code treibt mich bald in die Verzweiflung. Eigentlich soll es ein Experiment zu einer Verschlüsselung werden, aber nicht mal das blanke Einlesen und woanders Speichern funktioniert.<br />
Es kompiliert, macht aber nichts.<br />
Vielleicht offensichtliche Fehler, ich seh sie nicht. Hab mich größtenteils an Codebeispiele aus dem Inet gehalten.</p>
<pre><code class="language-cpp">int main(int argc, char *argv[]){
    if(argc&gt;1){
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
        input.close();

        ofstream output (&quot;./out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++){
            output &lt;&lt; vec[i];
        }
        output.close();
    }
    return EXIT_SUCCESS;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/206897/problem-mit-binär-einlesen-amp-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 17:40:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206897.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Mar 2008 13:51:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sat, 01 Mar 2008 13:51:47 GMT]]></title><description><![CDATA[<p>Hallo miteinander.</p>
<p>Ich beschäftige mich erst seit ein paar Wochen mit C++, von daher bitte &quot;verständliche&quot; Hilfen.<br />
Zum Problem, der nachfolgende Code treibt mich bald in die Verzweiflung. Eigentlich soll es ein Experiment zu einer Verschlüsselung werden, aber nicht mal das blanke Einlesen und woanders Speichern funktioniert.<br />
Es kompiliert, macht aber nichts.<br />
Vielleicht offensichtliche Fehler, ich seh sie nicht. Hab mich größtenteils an Codebeispiele aus dem Inet gehalten.</p>
<pre><code class="language-cpp">int main(int argc, char *argv[]){
    if(argc&gt;1){
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
        input.close();

        ofstream output (&quot;./out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++){
            output &lt;&lt; vec[i];
        }
        output.close();
    }
    return EXIT_SUCCESS;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1466039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466039</guid><dc:creator><![CDATA[nEmai]]></dc:creator><pubDate>Sat, 01 Mar 2008 13:51:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sat, 01 Mar 2008 13:55:19 GMT]]></title><description><![CDATA[<p>nEmai schrieb:</p>
<blockquote>
<p>Hallo miteinander.</p>
<p>Ich beschäftige mich erst seit ein paar Wochen mit C++, von daher bitte &quot;verständliche&quot; Hilfen.<br />
Zum Problem, der nachfolgende Code treibt mich bald in die Verzweiflung. Eigentlich soll es ein Experiment zu einer Verschlüsselung werden, aber nicht mal das blanke Einlesen und woanders Speichern funktioniert.<br />
Es kompiliert, macht aber nichts.<br />
Vielleicht offensichtliche Fehler, ich seh sie nicht. Hab mich größtenteils an Codebeispiele aus dem Inet gehalten.</p>
<pre><code class="language-cpp">int main(int argc, char *argv[]){
    if(argc&gt;1){
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
        input.close();

        ofstream output (&quot;out.txt&quot;, ios::binary); // mach hier mal so
        for(int i=0; i&lt;vec.size(); i++){
            output &lt;&lt; vec[i];
        }
        output.close();
    }
    return EXIT_SUCCESS;
}
</code></pre>
</blockquote>
<p>Keine Ahnung, ob das geht, aber ein Versuch ist es Wert ist gerade das offensichtlichste, was mir komisch vorkommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466042</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 01 Mar 2008 13:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sat, 01 Mar 2008 20:30:03 GMT]]></title><description><![CDATA[<p>nEmai schrieb:</p>
<blockquote>
<p>...<br />
Es kompiliert, macht aber nichts.<br />
...</p>
</blockquote>
<p>hast du das programm von der konsole aus gestartet und etwas eingegeben, damit auch was in argv[1] drin steht ?<br />
da gehört eigentlich noch ein hinweis mit ins programm rein, das es eine eingabe erwartet, wenn nichts eingegeben wird<br />
<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/1466321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466321</guid><dc:creator><![CDATA[agga ugga]]></dc:creator><pubDate>Sat, 01 Mar 2008 20:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sat, 01 Mar 2008 23:00:59 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>:<br />
So hatte ichs zuerst, funktioniert auch nicht.</p>
<p>@agga ugga<br />
Das ist mir bekannt. Meine Aussage war vielleicht etwas unglücklich.<br />
Es ist nicht vorgesehen etwas einzugeben, ich will das Teil starten indem ich eine Textdatei auf die kompilierte EXE ziehe. Dann ist der Pfad der gezogenen Datei, hab ich mir zumindest anzeigen lassen, in argv[1].<br />
Es steigt ja überhaupt nur ein, wenn argc&gt;1 ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466385</guid><dc:creator><![CDATA[nEmai]]></dc:creator><pubDate>Sat, 01 Mar 2008 23:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sun, 02 Mar 2008 02:28:21 GMT]]></title><description><![CDATA[<p>könnte sein dass wenn du die datei so öffnest der file pointer am ende der datei ist und nicht am anfang und deswegen sofort eof zutrifft</p>
<p>probier mal bevor du anfängst zu lesen</p>
<pre><code>input.seekg(0, ios_base::beg);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1466428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466428</guid><dc:creator><![CDATA[Vevusio]]></dc:creator><pubDate>Sun, 02 Mar 2008 02:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sun, 02 Mar 2008 02:54:11 GMT]]></title><description><![CDATA[<p>Dank den Tipps sieht mein Quelltext mittlerweile so aus, aber funktionieren tut er nicht wirklich. Es wird auch keine Datei out.txt erstellt.</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

using namespace std;

int main(int argc, char *argv[]){
    if(argc&gt;1){ //habe hier auch schon true probiert, aber auch ohne erfolg
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        input.seekg(0, ios_base::beg);
        while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
        input.close();

        ofstream output (&quot;out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++)
            output &lt;&lt; vec[i];
        output.close();
    }
    return EXIT_SUCCESS;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1466430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466430</guid><dc:creator><![CDATA[nEmai]]></dc:creator><pubDate>Sun, 02 Mar 2008 02:54:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sun, 02 Mar 2008 06:58:29 GMT]]></title><description><![CDATA[<p>input.seekg(0, ios_base::beg) ist ueberfluessig, ifstream oeffnet ohne weitere Angaben die Datei immer so, dass die aktuelle Position am Anfang ist.</p>
<p>Ich habe dein Program 1:1 bei mir kompiliert und gestartet, und es macht genau das was es soll. Das wahrscheinlichste ist, dass du das Programm also einfach falsch aufrufst. Versuch es mal ueber die Kommandozeile zu starten.</p>
<p>Deine Einlese-Schleife liest uebrigens ein Zeichen zu viel ein. Denn eof() liefert erst dann true, wenn das &quot;end of file&quot; bereits gefunden wurde. Das letzte gelesene Zeichen musst du also verwerfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466432</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Sun, 02 Mar 2008 06:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sun, 02 Mar 2008 10:25:11 GMT]]></title><description><![CDATA[<p>machs so:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

using namespace std;

int main(int argc, char *argv[]){
    if(argc&gt;1){ 
		cout &lt;&lt; &quot;kommandozeilenparameter gefunden&quot; &lt;&lt; endl;
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        //input.seekg(0, ios_base::beg);
        while(!input.fail()){ // auch möglich: input.good(), letztes Zeichen muss trotzdem verforfen werden
            input.get(c);
            vec.push_back(c);
        }
        cout &lt;&lt; &quot;definieren des Vectors beendet&quot; &lt;&lt; endl;
        input.close();

		cout &lt;&lt; &quot;Vector: &quot;;
		for(int i=0; i&lt;sizeof(vec); ++i)
			cout &lt;&lt; vec[i];
		cout &lt;&lt; endl;

        ofstream output (&quot;out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++)
        	output.write(reinterpret_cast&lt;const char*&gt;(&amp;vec[i]), sizeof(vec));  // binär schreiben 
		output.close();
        cout &lt;&lt; &quot;schreiben beendet!&quot; &lt;&lt; endl;
        system(&quot;pause&quot;);
    }

    else
    {
	 	cout &lt;&lt; &quot;keine Kommandozeilenparameter gefunden!&quot; &lt;&lt; endl;
	 	system(&quot;pause&quot;);
    }
    return EXIT_SUCCESS;
}
</code></pre>
<p>immer die Arbeitsvorgänge anzeigen lassen, damit man weiß, wo der Fehler ist <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="😉"
    /> (bei mir war &quot;input.eof()&quot; fehlerhaft)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466494</guid><dc:creator><![CDATA[double *T]]></dc:creator><pubDate>Sun, 02 Mar 2008 10:25:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sun, 02 Mar 2008 13:09:11 GMT]]></title><description><![CDATA[<p>Ich bedanke mich wiederum für die Hilfe. <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="🙂"
    /><br />
Tatsächlich, wenn ich meine exe von der cmd mit dem Pfad als Argument starte geht es. Das fördert nun aber leider gerade nicht mein Verständnis, im Gegenteil.</p>
<p>Ich habe meinen Code wieder etwas überarbeitet:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

using namespace std;

int main(int argc, char *argv[]){
    for(int i=0; i&lt;sizeof(argv); i++){
        cout &lt;&lt; argv[i] &lt;&lt; endl;
    }
    if(false){ //&lt;---------!!
        cout &lt;&lt; &quot;Parameter gefunden!&quot; &lt;&lt; endl;
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
        cout &lt;&lt; &quot;Laden beendet!&quot; &lt;&lt; endl;
        input.close();

        ofstream output (&quot;out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++)
            output.write(reinterpret_cast&lt;const char*&gt;(&amp;vec[i]), sizeof(vec));
        output.close();
        cout &lt;&lt; &quot;Schreiben beendet!&quot; &lt;&lt; endl;
    }
    else{
        cout &lt;&lt; &quot;keine Parameter gefunden!&quot; &lt;&lt; endl;
    }
    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Es bereitet mir nun 2 Probleme.<br />
Das erste ist, wenn ich es ohne Argumente öffne hat es folgende Ausgabe:<br />
I:\crypt\crypt.exe<br />
Drücken sie eine beliebige Taste...</p>
<p>Warum um alles in der Welt wird das cout im else übergangen, wenn ich schon direkt if(false) schreib?? <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>Das zweite ist, wenn ich das 'false' wieder durch 'argc&gt;1' ersetze macht es zumindest etwas, wenn ich es in der cmd folgendermaßen aufrufe:<br />
I:\crypt\&gt;crypt.exe txt.txt</p>
<p>Ausgabe:<br />
crypt.exe<br />
txt.txt<br />
Drücken sie eine beliebige Taste..</p>
<p>So weit so gut.**)<br />
Kommen wir zur von mir bevorzugten Methode es zu öffnen. Drag&amp;drop die Textdatei auf die exe und so starten. Es öffnet sich, Ausgabe:<br />
I:\crypt\crypt.exe //&lt;-argv[0]<br />
I:\crypt\txt.txt //&lt;-argv[1]<br />
Drücken sie eine beliebige Taste...</p>
<p>Und so funktioniert es nicht. Es Erstellt keine Ausgabedatei, nichts.<br />
Mag mich das Programm nicht oder hat das n rationaleren Grund?</p>
<p>Edit2: Mir ist geradet aufgefallen, dass alle couts übergangen werden, egal ob es funktioniert oder nicht. C++ ist mir zu hoch.. <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>**)Wirklich zufrieden sein kann man mit dem, was dieser Code erzeugt auch nicht.<br />
&quot;Viel Spaß&quot; im Eingang wird im Ausgang dazu:<br />
V</p>
<p>Vi</p>
<p>Vie</p>
<p>Viel</p>
<p>Viel</p>
<p>Viel S</p>
<p>Viel Sp</p>
<p>Viel Spa<br />
Viel Spaß<br />
Viel Spaßß<br />
Viel Spaßß Viel Spaßß iel Spaßß el Spaßß l Spaßß Spaßß Spaßß paßß aßß ßß ß</p>
<p>Man erkennt zumindest, dass es wie in einem Schieberegister verschoben ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466582</guid><dc:creator><![CDATA[nEmai]]></dc:creator><pubDate>Sun, 02 Mar 2008 13:09:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binär Einlesen&amp;amp;Ausgeben on Sun, 02 Mar 2008 15:35:54 GMT]]></title><description><![CDATA[<p>@double* T:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Vector: &quot;;
        for(int i=0; i&lt;sizeof(vec); ++i)
            cout &lt;&lt; vec[i];
        cout &lt;&lt; endl;
</code></pre>
<p>du bist dir sicher, dass das sooft durchläuft, wie du vermutest? <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>Nagut, analysieren wir mal deinen Quelltext:</p>
<p><strong>Code 01</strong></p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

using namespace std;

int main(int argc, char *argv[])
{
    if(argc&gt;1)
    { 
        //habe hier auch schon true probiert, aber auch ohne erfolg
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        input.seekg(0, ios_base::beg);
        while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
        input.close();

        ofstream output (&quot;out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++)
            output &lt;&lt; vec[i];
        output.close();
    }
    return EXIT_SUCCESS;
}
</code></pre>
<pre><code class="language-cpp">if(argc&gt;1)
    { 
        //habe hier auch schon true probiert, aber auch ohne erfolg
</code></pre>
<p>Du willst einen Integer auf &quot;true&quot; testen? Das ist zwar möglich, aber definitiv falsch, wenn du dir die Definition von argc anguckst.</p>
<pre><code class="language-cpp">char c;
        vector&lt;char&gt; vec;
</code></pre>
<p>Warum legst du die Variablen schon hier an? Wenn sich die Datei nicht öffnen lässt, kannst du dir das ganz sparen.</p>
<pre><code class="language-cpp">ifstream input (argv[1], ios::binary);
</code></pre>
<p>Du öffnest die Datei binary? Ließt aber mit get ein? read/write wäre dann korrekt!</p>
<pre><code class="language-cpp">while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
</code></pre>
<p>Aua. Das ließt definitiv ein Zeichen zu viel ein <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>
<pre><code class="language-cpp">while (input &gt;&gt; c) vec.push_back(c);
</code></pre>
<p>sollte ausreichend sein.</p>
<pre><code class="language-cpp">input.close();
</code></pre>
<p>macht der Destruktor von input automatisch!</p>
<pre><code class="language-cpp">ofstream output (&quot;out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++)
            output &lt;&lt; vec[i];
        output.close();
</code></pre>
<p>(1) iteratoren sind hier wesentlich schneller<br />
(2) du öffnest binary, streamst aber rein (statt write)<br />
(3) close wird vom Destruktor von ouput automatisch aufgerufen</p>
<p><strong>Code 02</strong></p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

using namespace std;

int main(int argc, char *argv[]){
    for(int i=0; i&lt;sizeof(argv); i++){
        cout &lt;&lt; argv[i] &lt;&lt; endl;
    }
    if(false){ //&lt;---------!!
        cout &lt;&lt; &quot;Parameter gefunden!&quot; &lt;&lt; endl;
        char c;
        vector&lt;char&gt; vec;

        ifstream input (argv[1], ios::binary);
        while(!input.eof()){
            input.get(c);
            vec.push_back(c);
        }
        cout &lt;&lt; &quot;Laden beendet!&quot; &lt;&lt; endl;
        input.close();

        ofstream output (&quot;out.txt&quot;, ios::binary);
        for(int i=0; i&lt;vec.size(); i++)
            output.write(reinterpret_cast&lt;const char*&gt;(&amp;vec[i]), sizeof(vec));
        output.close();
        cout &lt;&lt; &quot;Schreiben beendet!&quot; &lt;&lt; endl;
    }
    else{
        cout &lt;&lt; &quot;keine Parameter gefunden!&quot; &lt;&lt; endl;
    }
    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>S. Code 01!</p>
<pre><code class="language-cpp">for(int i=0; i&lt;sizeof(argv); i++){
        cout &lt;&lt; argv[i] &lt;&lt; endl;
    }
</code></pre>
<p>Aua. Lass den Quatsch und nutz argc.</p>
<pre><code class="language-cpp">if(false){ //&lt;---------!!
</code></pre>
<p>Das wird definitiv NIE in erfüllung gehen -.-</p>
<p>=&gt;</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

int main(int argc, char** argv)
{
    if (argc != 2) /* argc == 1, wenn kein Parameter übergeben wurde. argv[0] == programmname */
    {
        std::cerr &lt;&lt; &quot;FEHLER: Es wurden keine korrekten Parameter übergeben!\n&quot; &lt;&lt; argv[0] &lt;&lt; &quot; [-sourcefile]&quot; &lt;&lt; std::endl;
        return 1;
    }

    std::ifstream file_stream_source(argv[1]);
    if (!file_stream_source) // konnte Datei geöffnet werden?
    {
        std::cerr &lt;&lt; &quot;FEHLER: Datei(\&quot;&quot; &lt;&lt; argv[1] &lt;&lt; &quot;\&quot;) konnte nicht geöffnet werden!&quot; &lt;&lt; std::endl;
        return 2;
    }

    std::vector&lt;char&gt; data;
    char temp_char;
    while (file_stream_source &gt;&gt; temp_char) data.push_back(temp_char);

    std::ofstream file_stream_destination(&quot;output.txt&quot;);
    for (std::vector&lt;char&gt;::const_iterator it(data.begin()); it != data.end(); ++it)
        file_stream_destination &lt;&lt; *it;
}
</code></pre>
<p>. So geht das, mit deinem Ansatz (jedes Zeichen einzellnt einlesen [in vector] und dann wieder ausgeben). Einfacher geht es per iteratoren:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;

int main(int argc, char** argv)
{
    if (argc != 2) /* argc == 1, wenn kein Parameter übergeben wurde. argv[0] == programmname */
    {
        std::cerr &lt;&lt; &quot;FEHLER: Es wurden keine korrekten Parameter übergeben!\n&quot; &lt;&lt; argv[0] &lt;&lt; &quot; [-sourcefile]&quot; &lt;&lt; std::endl;
        return 1;
    }

    std::ifstream file_stream_source(argv[1]);
    if (!file_stream_source) // konnte Datei geöffnet werden?
    {
        std::cerr &lt;&lt; &quot;FEHLER: Datei(\&quot;&quot; &lt;&lt; argv[1] &lt;&lt; &quot;\&quot;) konnte nicht geöffnet werden!&quot; &lt;&lt; std::endl;
        return 2;
    }

    std::vector&lt;char&gt; data(std::istream_iterator&lt;char&gt;(file_stream_source), std::istream_iterator&lt;char&gt;());

    std::ofstream file_stream_destination(&quot;output.txt&quot;);
    std::copy(data.begin(), data.end(), std::ostream_iterator&lt;char&gt;(file_stream_destination));
}
</code></pre>
<p>Und noch einfacher ist es, direkt den Buffer zu kopieren <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

int main(int argc, char** argv)
{
    if (argc != 2) /* argc == 1, wenn kein Parameter übergeben wurde. argv[0] == programmname */
    {
        std::cerr &lt;&lt; &quot;FEHLER: Es wurden keine korrekten Parameter übergeben!\n&quot; &lt;&lt; argv[0] &lt;&lt; &quot; [-sourcefile]&quot; &lt;&lt; std::endl;
        return 1;
    }

    std::ifstream file_stream_source(argv[1]);
    if (!file_stream_source) // konnte Datei geöffnet werden?
    {
        std::cerr &lt;&lt; &quot;FEHLER: Datei(\&quot;&quot; &lt;&lt; argv[1] &lt;&lt; &quot;\&quot;) konnte nicht geöffnet werden!&quot; &lt;&lt; std::endl;
        return 2;
    }

    std::ofstream file_stream_destination(&quot;output.txt&quot;);
    file_stream_destination &lt;&lt; file_stream_source.rdbuf();
}
</code></pre>
<p>... sodele <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1466733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466733</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 02 Mar 2008 15:35:54 GMT</pubDate></item></channel></rss>