<?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[Byteweise aus Datei auslesen]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgende Aufgabe:<br />
Muss von einer Textdatei und von einer Binärdatei die Daten (1x char,1x int, 1x float) auslesen und in ein andere Variablen schreiben.<br />
Das ganze soll Bytweise ausgelesen werden.<br />
Kann mir da jemand helfen?</p>
<p>Vielen Dank und freundliche Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/276049/byteweise-aus-datei-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 22:47:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276049.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Oct 2010 08:27:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 08:27:34 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgende Aufgabe:<br />
Muss von einer Textdatei und von einer Binärdatei die Daten (1x char,1x int, 1x float) auslesen und in ein andere Variablen schreiben.<br />
Das ganze soll Bytweise ausgelesen werden.<br />
Kann mir da jemand helfen?</p>
<p>Vielen Dank und freundliche Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970723</guid><dc:creator><![CDATA[bordon]]></dc:creator><pubDate>Tue, 26 Oct 2010 08:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 09:41:07 GMT]]></title><description><![CDATA[<p>Was hast Du denn schon, und wo liegt bei dem was Du schon hast das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970763</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 26 Oct 2010 09:41:07 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 09:49:59 GMT]]></title><description><![CDATA[<p>Hab folgende Variablen:</p>
<p>char zeichen = 'a';<br />
int zahl = 1234;<br />
float f = 12.34f;<br />
char text[] = {&quot;hallo&quot;};</p>
<p>diese Variablen hab ich mit zwei Funktionen einmal in eine Textdatei und in eine Binärdatei geschrieben.<br />
Nun möchte ich jede einzelne Variable sowohl aus der Textdatei als auch aus der Binärdatei auslesen. Wichtig dabei ist, dass ich es Byteweise auslesen muss.</p>
<p>Vielen Dank für eure Antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970766</guid><dc:creator><![CDATA[bordon]]></dc:creator><pubDate>Tue, 26 Oct 2010 09:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 09:57:31 GMT]]></title><description><![CDATA[<p>noch eine Zwischenbemerkung:<br />
Hab es mal so versucht, doch mit dieser Option liest er nur die erste Zeile aus</p>
<p>int dec;<br />
char dateiname[]=&quot;D:\\Eigene Dateien\\Text.bin&quot;;<br />
FILE *datei;<br />
if((datei=fopen(dateiname,&quot;r&quot;))==NULL)<br />
cout &lt;&lt; &quot;Datei kann nicht geoefnett werden&quot; &lt;&lt; '\n';<br />
else{<br />
dec=fgetc(datei);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970775</guid><dc:creator><![CDATA[bordon]]></dc:creator><pubDate>Tue, 26 Oct 2010 09:57:31 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 10:07:26 GMT]]></title><description><![CDATA[<p>bordon schrieb:</p>
<blockquote>
<p>Hab folgende Variablen:</p>
<p>char zeichen = 'a';<br />
int zahl = 1234;<br />
float f = 12.34f;<br />
char text[] = {&quot;hallo&quot;};</p>
<p>diese Variablen hab ich mit zwei Funktionen einmal in eine Textdatei und in eine Binärdatei geschrieben.</p>
</blockquote>
<p>kannst Du uns die Funktionen zeigen?</p>
<p>bordon schrieb:</p>
<blockquote>
<p>Nun möchte ich jede einzelne Variable sowohl aus der Textdatei als auch aus der Binärdatei auslesen. Wichtig dabei ist, dass ich es Byteweise auslesen muss.</p>
</blockquote>
<p>Warum ist das wichtig? Wenn Du einen float byteweise liest, so ist es zunächst kein float mehr!</p>
<p>Lesen aus Textdatei geht so:</p>
<pre><code class="language-cpp">char zeichen;
    int zahl;
    float f;
    ifstream datei(&quot;eineDatei.txt&quot;); // erfordert #include &lt;fstream&gt;
    if( datei &gt;&gt; zeichen &gt;&gt; zahl &gt;&gt; f ) {
       cout &lt;&lt; &quot;alles richtig geelsen&quot; &lt;&lt; endl;
       // usw.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1970781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970781</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Tue, 26 Oct 2010 10:07:26 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 10:20:32 GMT]]></title><description><![CDATA[<p>[cpp][code]<br />
void fktTXT(char c[]){<br />
if(c[0]=='W' &amp;&amp; c[1]=='T'){<br />
ofstream write(&quot;Text.txt&quot;);<br />
write &lt;&lt; zeichen &lt;&lt; endl;<br />
write &lt;&lt; zahl &lt;&lt; endl;<br />
write &lt;&lt; f &lt;&lt; endl;<br />
write &lt;&lt; text &lt;&lt; endl;<br />
}<br />
else if(c[0]=='R' &amp;&amp; c[1]=='T'){<br />
char var1[10]; int var2; float var3; char var4[50];<br />
ifstream read(&quot;Text.txt&quot;);<br />
read &gt;&gt; var1;<br />
read &gt;&gt; var2;<br />
read &gt;&gt; var3;<br />
read &gt;&gt; var4;</p>
<p>cout &lt;&lt; var1 &lt;&lt; '\n';<br />
cout &lt;&lt; var2 &lt;&lt; '\n';<br />
cout &lt;&lt; var3 &lt;&lt; '\n';<br />
cout &lt;&lt; var4 &lt;&lt; '\n';<br />
}<br />
}<br />
[quote]</p>
<p>Diese Funktion klappt wie ich es haben will. Nun will unser Dozent, dass wir aus der Textdatei die Variablen Byteweise auslesen, um diese in Dezimaler-, Hexadezimaler-, Binärer Form anzeigen zu lassen.<br />
Also muss die Ausgabe praktisch so ausehen:</p>
<p>Addr Dec Hex Bin ASC<br />
0000: 97 61 01100001 'a'<br />
0001: 13 0d 00001101 '.'<br />
0002: 10 0a 00001010 '.'<br />
0003: 49 31 00110001 '1'<br />
0003: 50 32 00110010 '2'<br />
usw....</p>
<p>Versteht ihr was ich meine!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970793</guid><dc:creator><![CDATA[bordon]]></dc:creator><pubDate>Tue, 26 Oct 2010 10:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 10:37:21 GMT]]></title><description><![CDATA[<p>bordon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void fktTXT(char c[]){
    if(c[0]=='W' &amp;&amp; c[1]=='T'){
       ofstream write(&quot;Text.txt&quot;);
       write &lt;&lt; zeichen &lt;&lt; endl;
       write &lt;&lt; zahl &lt;&lt; endl;
       write &lt;&lt; f &lt;&lt; endl; 
       write &lt;&lt; text &lt;&lt; endl;
    }
    else if(c[0]=='R' &amp;&amp; c[1]=='T'){
       char var1[10]; int var2; float var3; char var4[50];
       ifstream read(&quot;Text.txt&quot;);
       read &gt;&gt; var1;
       read &gt;&gt; var2;
       read &gt;&gt; var3;
       read &gt;&gt; var4;
       
       cout &lt;&lt; var1 &lt;&lt; '\n';  
       cout &lt;&lt; var2 &lt;&lt; '\n';
       cout &lt;&lt; var3 &lt;&lt; '\n';
       cout &lt;&lt; var4 &lt;&lt; '\n'; 
    }
}
</code></pre>
<p>Diese Funktion klappt wie ich es haben will. Nun will unser Dozent, dass wir aus der Textdatei die Variablen Byteweise auslesen, um diese in Dezimaler-, Hexadezimaler-, Binärer Form anzeigen zu lassen.<br />
Also muss die Ausgabe praktisch so ausehen:</p>
<p>Addr Dec Hex Bin ASC<br />
0000: 97 61 01100001 'a'<br />
0001: 13 0d 00001101 '.'<br />
0002: 10 0a 00001010 '.'<br />
0003: 49 31 00110001 '1'<br />
0003: 50 32 00110010 '2'<br />
usw....</p>
<p>Versteht ihr was ich meine!?</p>
</blockquote>
<p>Du möchtest alos <strong>nicht(!)</strong> die Variablen auslesen, sondern die Bytes. Sag' das doch gleich. Das ist auch einfach</p>
<pre><code class="language-cpp">ifstream datei(&quot;Text.txt&quot;);
    datei &gt;&gt; noskipws; // liest auch Leerzeichen und LF
    int addr = 0;
    for( unsigned char byte; datei &gt;&gt; byte; ++addr ) {
        // 'addr' und 'byte' in dec, hex, bin und ggf. ascii ausgeben
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1970801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970801</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Tue, 26 Oct 2010 10:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 11:19:19 GMT]]></title><description><![CDATA[<p>Ok, danke erstmal für deine Antwort.<br />
Kannst du mir nun noch sagen, wie ich byte in dec, hex und bin anzeigen lasse??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970825</guid><dc:creator><![CDATA[bordon]]></dc:creator><pubDate>Tue, 26 Oct 2010 11:19:19 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Tue, 26 Oct 2010 12:01:06 GMT]]></title><description><![CDATA[<p>bordon schrieb:</p>
<blockquote>
<p>Kannst du mir nun noch sagen, wie ich byte in dec, hex und bin anzeigen lasse??</p>
</blockquote>
<p>Du möchtest das vollständige Programm! Was lernt Ihr denn bei Eurem Dozenten?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;locale&gt; // ctype&lt;&gt;
#include &lt;iomanip&gt; // setw
#include &lt;bitset&gt;
#include &lt;fstream&gt;

int main()
{
    using namespace std;
    ifstream datei(&quot;Text.txt&quot;); // ggf. datei( .., ios_base::binary );
    if( !datei.is_open() )
    {
        cerr &lt;&lt; &quot;Fehler beim Oeffnen der Datei&quot; &lt;&lt; endl;
        return -1;
    }
    datei &gt;&gt; noskipws; // alle Zeichen lesen
    cout &lt;&lt; &quot;Addr  Dec Hex Bin     Asc&quot; &lt;&lt; endl;
    //       0001: 255 ff 01011010 '.'
    const char fillc = cout.fill('0');
    const ctype&lt; char &gt;&amp; ctype_ = use_facet&lt; ctype&lt; char &gt; &gt;( cout.getloc() );
    int adresse = 0;
    for( unsigned char byte; datei &gt;&gt; byte; ++adresse )
    {
        cout &lt;&lt; setw(4) &lt;&lt; adresse &lt;&lt; &quot;: &quot; &lt;&lt; setw(3) &lt;&lt; int(byte) &lt;&lt; &quot; &quot; &lt;&lt; hex &lt;&lt; setw(2) &lt;&lt; int(byte) &lt;&lt; dec
            &lt;&lt; &quot; &quot; &lt;&lt; bitset&lt;8&gt;( byte ) &lt;&lt; &quot; '&quot;;
        if( ctype_.is( ctype_base::print, char(byte) ) )
            cout &lt;&lt; char(byte);
        else
            cout &lt;&lt; '.';
        cout &lt;&lt; &quot;'&quot; &lt;&lt; endl;
    }
    cout.fill( fillc ); // Füllzeichen wieder zurücksetzen

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1970837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970837</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Tue, 26 Oct 2010 12:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Thu, 18 Nov 2010 15:53:20 GMT]]></title><description><![CDATA[<p>Das sieht irgendwie nach unseren Algodataufgabe aus^^<br />
Vor allem das Datum^^<br />
Die sind eig. mit seinen Vorgaben im Netz machbar. <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/1982362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982362</guid><dc:creator><![CDATA[Mr Xx]]></dc:creator><pubDate>Thu, 18 Nov 2010 15:53:20 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Thu, 18 Nov 2010 16:18:53 GMT]]></title><description><![CDATA[<p>Und nur so, er hat sogar zur Not seine Lösung zur Verfügung gestellt^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982377</guid><dc:creator><![CDATA[Mr Xx]]></dc:creator><pubDate>Thu, 18 Nov 2010 16:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to Byteweise aus Datei auslesen on Thu, 18 Nov 2010 16:20:00 GMT]]></title><description><![CDATA[<p>Mr Xx schrieb:</p>
<blockquote>
<p>Und nur so, er hat sogar zur Not seine Lösung zur Verfügung gestellt^^</p>
</blockquote>
<p>#include &lt;fstream&gt;<br />
#include &lt;iostream&gt;</p>
<p>using namespace std; // falls kein &quot;using&quot;, muss &quot;std::&quot; vor &quot;ofstream&quot;</p>
<p>int main() {<br />
float f=0.625, f1;<br />
int i=-13, i1;<br />
char ch;<br />
//std::ofstream outFile;<br />
ofstream outFile;<br />
ifstream inFile;</p>
<p>//TextFile<br />
outFile.open(&quot;C:\\scratch\\CPP.TXT&quot;);//Methode open in &lt;fstream.h&gt; nicht vorhanden<br />
outFile &lt;&lt; f &lt;&lt; ' ' &lt;&lt; i;<br />
//myFile &lt;&lt; endl; //Genau: Schreiben auf phys. Textdatei erfolgt mit endl<br />
outFile.close(); //garantiert mit close</p>
<p>//BinFile<br />
outFile.open(&quot;C:\\scratch\\CPP.BIN&quot;, ios::out | ios::binary); // OK<br />
<a href="//outFile.open">//outFile.open</a>(&quot;C:\\scratch\\CPP.BIN&quot;); // OK<br />
outFile.write((char*)&amp;f, sizeof(f));<br />
outFile.write((char*)&amp;i, sizeof(int));<br />
outFile.close(); //Schreiben auf phys. Bin.Datei erst mit close</p>
<p>//TextFile: passende Variablen lesen<br />
inFile.open(&quot;C:\\scratch\\CPP.TXT&quot;);<br />
if(inFile.fail())<br />
return 1; // exit falls Datei nicht existiert<br />
inFile &gt;&gt; f1 &gt;&gt; i1; //eof erreicht! - siehe weiter<br />
//inFile &gt;&gt; f1; // oder so<br />
//inFile &gt;&gt; i1;<br />
cout &lt;&lt; &quot;f1=&quot; &lt;&lt; f1 &lt;&lt; endl;<br />
cout &lt;&lt; &quot;i1=&quot; &lt;&lt; i1 &lt;&lt; endl;<br />
inFile.close();</p>
<p>//TextFile: einzelne Bytes lesen<br />
inFile.open(&quot;C:\\scratch\\CPP.TXT&quot;);<br />
//bei wiederholtem open kein automatischer Reset von eof(), good(), ...<br />
inFile.clear(); //resetet eof(), good(), fail()<br />
cout &lt;&lt; endl &lt;&lt; &quot;Inhalt von CPP.TXT:&quot; &lt;&lt; endl;<br />
while (!inFile.eof()) {<br />
ch=inFile.get(); // 1 Zeichen lesen<br />
cout &lt;&lt; ch;<br />
}<br />
inFile.close();</p>
<p>//BinFile: passende Variablen lesen:<br />
<a href="//inFile.open">//inFile.open</a>(&quot;C:\\scratch\\CPP.BIN&quot;, ios::in | ios::binary); // OK<br />
inFile.open(&quot;C:\\scratch\\CPP.BIN&quot;); // OK<br />
inFile.clear(); //resetet eof(), good(), fail()<br />
if(inFile.fail())<br />
return 1; // exit falls Datei nicht existiert<br />
inFile.clear();<br />
inFile.read((char*)&amp;f1, sizeof(f1));<br />
inFile.read((char*)&amp;i1, sizeof(int));<br />
inFile.close();</p>
<p>//BinFile: einzelne Bytes lesen-also HexEditor simuleren<br />
inFile.open(&quot;C:\\scratch\\CPP.BIN&quot;);<br />
//bei wiederholtem open kein automatischer Reset von eof(), good(), ...<br />
inFile.clear(); //resetet eof(), good(), fail(),...<br />
cout &lt;&lt; endl &lt;&lt; endl &lt;&lt; &quot;Inhalt von CPP.BIN:&quot; &lt;&lt; endl;<br />
while (!inFile.eof()) {<br />
inFile.read((char*)&amp;ch, sizeof(char));<br />
cout &lt;&lt; &quot;0x&quot; &lt;&lt;hex &lt;&lt; (int)(ch &amp; 0xff) &lt;&lt; endl;<br />
// hex ist Manipulator; konvertiert Ausgabe in Hex<br />
// hex erwartet abwer eine int-Zahl (auch short,...)<br />
// Um nur 1 Byte darzustellen (int hat 4 Bytes)<br />
// wird der Bitoperator &amp; eingesetzt<br />
}<br />
inFile.close();<br />
return 0;</p>
<p>}</p>
<p>/*<br />
//Loesung 1a: C++ classic<br />
#include &lt;fstream.h&gt;</p>
<p>main ()<br />
{<br />
ofstream myFile1(&quot;C:\\scratch\\CPP.TXT&quot;);<br />
// Öffnen (evtl. erst kreieren) der Datei<br />
// &quot;myFile.dat&quot; zum Schreiben</p>
<p>//float f=0.625;<br />
float f=0;</p>
<p>int i=-13;</p>
<p>// TextFile<br />
//myFile1 &lt;&lt; f &lt;&lt; &quot; &quot; &lt;&lt; i &lt;&lt; endl;<br />
myFile1.write((char*)&amp;f,sizeof(f));<br />
myFile1.close();<br />
// Datei wieder schließen<br />
// BinFile<br />
ofstream myFile2(&quot;C:\\scratch\\CPP.BIN&quot;);<br />
char buffer2[50];<br />
int* pointer=(int*) buffer2;<br />
<em>pointer=-13;<br />
myFile2.write(buffer2, 4);<br />
<a href="//myFile2.write">//myFile2.write</a>((char</em>)&amp;i, sizeof(int));<br />
myFile2.close();</p>
<p>return 0;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982378</guid><dc:creator><![CDATA[Mr Xx]]></dc:creator><pubDate>Thu, 18 Nov 2010 16:20:00 GMT</pubDate></item></channel></rss>