<?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[bytes auslesen]]></title><description><![CDATA[<p>Hallo kann ich irgendwie die Bytes der Datei auslesen und diese dann in einer neuen Datei abspeichern so das ich z.b. Notepad unter dem neuen Datei namen starten kann ?</p>
<p>Hier ist einer meiner Versuche welche natürlich nicht funktionierten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main(int argc, char* argv[])
{
char buf;
ofstream datei(&quot;neu.exe&quot;,ios::app);
ifstream file;

             file.open(&quot;notepad.exe&quot;,ios::binary);

             while ( !file.eof() )
             { 
                     file &gt;&gt; buf;

                     datei&lt;&lt;buf;
             }
             file.close();

system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Wofür will ich das machen ?</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-247902.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-247902.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247992/bytes-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 08:02:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247992.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Aug 2009 12:52:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 12:52:48 GMT]]></title><description><![CDATA[<p>Hallo kann ich irgendwie die Bytes der Datei auslesen und diese dann in einer neuen Datei abspeichern so das ich z.b. Notepad unter dem neuen Datei namen starten kann ?</p>
<p>Hier ist einer meiner Versuche welche natürlich nicht funktionierten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main(int argc, char* argv[])
{
char buf;
ofstream datei(&quot;neu.exe&quot;,ios::app);
ifstream file;

             file.open(&quot;notepad.exe&quot;,ios::binary);

             while ( !file.eof() )
             { 
                     file &gt;&gt; buf;

                     datei&lt;&lt;buf;
             }
             file.close();

system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Wofür will ich das machen ?</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-247902.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-247902.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762864</guid><dc:creator><![CDATA[byte_leser]]></dc:creator><pubDate>Tue, 18 Aug 2009 12:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 13:02:42 GMT]]></title><description><![CDATA[<p>Machst du so, guckstu du hier:</p>
<pre><code class="language-cpp">ofstream out (&quot;test&quot;);
	out &lt;&lt; &quot;Puuuuuuuuuuuuuups!&quot;;
	out.close();
	system (&quot;notepad test&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1762868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762868</guid><dc:creator><![CDATA[Big Brother]]></dc:creator><pubDate>Tue, 18 Aug 2009 13:02:42 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 13:09:28 GMT]]></title><description><![CDATA[<p>&lt;&lt; und &gt;&gt; sind für formatierte Ein-/Ausgabe. Bei Programmdateien ist es aber wichtig, dass das Format nicht geändert wird. Außerdem ist while(!file.eof()) keine gute Idee, weil du so noch einmal etwas falsches in die Ausgabe schreibst, nachdem das Dateiende erreicht ist.</p>
<p>get und put sind für unformatiertes Lesen/Schreiben. Und diese liefern schon als Returnwert, ob das Lesen erfolgreich war. Somit ist die funktionierende Variante folgendes:</p>
<pre><code class="language-cpp">while (file.get(buf)) datei.put(buf);
</code></pre>
<p>Dir ist aber doch wohl klar, dass du gerade das Rad zum x-ten Mal neu erfindest?</p>
<p>edit: Wenn du dich etwas fortgeschrittener fühlst, kannst du obiges auch nochmal um einiges eleganter mit Streamiteratoren schreiben, aber das überlasse ich mal dem geneigten Leser als Übung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762873</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Aug 2009 13:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 13:34:08 GMT]]></title><description><![CDATA[<p>Funktioniert ty :&gt;</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main(int argc, char* argv[])
{

char buf;
ifstream file;

ofstream datei(&quot;test.exe&quot;,ios::binary);
file.open(&quot;Project2.exe&quot;,ios::binary);

    while ( file.get(buf) )
    datei.put(buf);

    file.close();
    datei.close();

system(&quot;PAUSE&quot;);
}
//---------------------------------------------------------------------------
</code></pre>
<p>Mit iteratoren wollte ich mich sowieso mal bald beschäftigen. ^^</p>
<p>Aber wo genau ist der Vorteil ?</p>
<p>Meiner Meinung nach wäre der Vorteil das man doch da z.b. bei bestimmten Sachen auf Schleifen verzichten kann und so das Programm ja dann schneller ausgeführt wird.</p>
<p>Ich hatte letzdens mal eine Frage gestellt wie man Text Filtern kann.</p>
<p>Und da gab es dann eine Lösung mit iteratoren und eine ohne und die Lösung ohne iteratoren in der waren Schleifen enthalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762895</guid><dc:creator><![CDATA[byte_leser]]></dc:creator><pubDate>Tue, 18 Aug 2009 13:34:08 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 13:39:47 GMT]]></title><description><![CDATA[<p>Das Programm wird dadurch nicht schneller, es muss ja immer noch das gleiche geleistet werden. Die Schleifen sind dabei nur etwas versteckt.</p>
<p>Der große Vorteil ist, dass du mit Streamiteratoren die Lösung von Ein-/Ausgabeprobleme sehr allgemein formulieren kannst. Somit musst du im Prinzip nur einmal den nötigen Code in eine Funktion schreiben und musst dann nur ein wenig am Aufruf der Funktion ändern um ein völlig anderes Ein-/Ausgabeproblem zu lösen.</p>
<p>Wenn ich mal mehr Zeit habe, kann ich ja mal ein Beispiel bringen oder vielleicht hat jemand anderes gerade etwas parat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762898</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Aug 2009 13:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 13:52:22 GMT]]></title><description><![CDATA[<p>byte_leser schrieb:</p>
<blockquote>
<p>Mit iteratoren wollte ich mich sowieso mal bald beschäftigen. ^^</p>
<p>Aber wo genau ist der Vorteil ?</p>
</blockquote>
<p>Der Vorteil von Iteratoren besteht vor allem in der Abstraktion, die durch deren Verwendung erlangt wird. Nehmen wir an, du hast einen <code>double</code> -Container und willst alle seine Elemente um 1.5 erhöhen. Zum Beispiel einen <code>std::vector</code> . Ohne Iteratoren würdest du das wahrscheinlich so machen:</p>
<pre><code class="language-cpp">std::vector&lt;double&gt; MyDoubles; // füllen

for (size_t i = 0; i &lt; MyDoubles.size(); ++i)
{
   MyDoubles[i] += 1.5;
}
</code></pre>
<p>Nun merkst du plötzlich, dass du sehr oft Elemente am Anfang einfügen willst und entscheidest dich, eine dafür geeignetere Datenstruktur zu wählen, zum Beispiel eine verkettete Liste. <code>std::list</code> besitzt aber keinen Random Access (Zugriff über Index), folglich musst du zu Iteratoren greifen. Also schreibst du:</p>
<pre><code class="language-cpp">for (std::list&lt;double&gt;::iterator iter = MyDoubles.begin(); iter != MyDoubles.end(); ++iter)
{
    (*iter) += 1.5;
}
</code></pre>
<p>Wenn du jetzt wieder merkst, dass <code>std::vector</code> trotzdem besser gewesen wäre, weil die Einfügungen durch eine sinnvollere Alternative ersetzt werden können, kannst du auch gleich Iteratoren für <code>std::vector</code> verwenden. Um dann nicht noch den Typ jedes Mal ändern zu müssen, verwendest du <code>typedef</code> .</p>
<pre><code class="language-cpp">typedef std::vector&lt;double&gt; DoubleContainer;

DoubleContainer MyDoubles;

for (DoubleContainer::iterator iter = MyDoubles.begin(); iter != MyDoubles.end(); ++iter)
{
    (*iter) += 1.5;
}
</code></pre>
<p>Damit bleibst du schön generisch. Dadurch, dass du die Schleife vom konkreten Containertyp unabhängig machst und den Typen in nur einer einzigen Zeile ändern kannst, erhältst du die erwähnte Abstraktion.</p>
<p>Das ist natürlich nur ein kleines Beispiel. Besonders im Zusammenhang mit den Algorithmen sind Iteratoren noch viel zentraler. Ich schlage dir vor, du liest dich in die STL-Artikel ein, besonders Teil 2 erklärt die hier angeschnittene Thematik (dafür ist aber Teil 1 als Grundlage erforderlich):<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html" rel="nofollow"><strong>1)</strong> Container</a><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-146604.html" rel="nofollow"><strong>2)</strong> Iteratoren und Algorithmen</a><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-150106.html" rel="nofollow"><strong>3)</strong> Hilfsklassen und Erweiterungen</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762907</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 18 Aug 2009 13:52:22 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 14:50:03 GMT]]></title><description><![CDATA[<p>ty erst mal für die Infos.</p>
<p>Aber eine Frage hab ich noch.<br />
Wie kann ich das machen wenn ich ein Array habe ?</p>
<p>Kann man</p>
<pre><code class="language-cpp">char buf[256];
</code></pre>
<p>irgendwie in ein normales char Konvertieren ?<br />
Weil so funktioniert das ja nicht.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main()
{

char buf[256];

ifstream file;

ofstream datei(&quot;test.exe&quot;,ios::binary);
file.open(&quot;Notepad.exe&quot;,ios::binary);

    while ( file.get(buf) )
    {

            datei.put(buf);

    }

    file.close();
    datei.close();

    cout&lt;&lt;buf;

system(&quot;PAUSE&quot;);
}
//---------------------------------------------------------------------------
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1762939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762939</guid><dc:creator><![CDATA[byte_leser]]></dc:creator><pubDate>Tue, 18 Aug 2009 14:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 15:17:58 GMT]]></title><description><![CDATA[<p>byte_leser schrieb:</p>
<blockquote>
<p>Kann man</p>
<pre><code class="language-cpp">char buf[256];
</code></pre>
<p>irgendwie in ein normales char Konvertieren ?<br />
Weil so funktioniert das ja nicht.</p>
</blockquote>
<p>Wie soll das gehen? Du willst einen Korb Äpfel in einen Apfel umwandeln...<br />
Du kannst aber natürlich einen einzelnen Apfel aus dem Korb nehmen, aber das solltest du wissen, wie das geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762959</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Aug 2009 15:17:58 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 17:24:47 GMT]]></title><description><![CDATA[<p>Ja das weiss ich wie das geht ich probiers mal morgen aus ty.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763024</guid><dc:creator><![CDATA[byte_leser]]></dc:creator><pubDate>Tue, 18 Aug 2009 17:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to bytes auslesen on Tue, 18 Aug 2009 17:59:21 GMT]]></title><description><![CDATA[<p>Das, was du da vorhast (meine Kristallkugel sagt mir, du willst den Lesepuffer vergrößern um weniger Schleifendurchgänge zu haben) bringt dir keinen Geschwindigkeitsvorteil. Die Streams sind gepuffert und dein Prozessor ist um Größenordnungen schneller als jeder Datenträger, selbst eine RAM-Disk kommt da nicht mit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763049</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Aug 2009 17:59:21 GMT</pubDate></item></channel></rss>