<?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[1 Byte in long]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>auch wenn das Thema schon leidig oft im Netz besprochen wurde. Ich habe das Problem noch immer und<br />
ich hoffe ihr könnt mir bei helfen:</p>
<p>ich möchte von einer Binärdatei Byteweise Hexzahlen lesen und dezimal ausgeben. Als Variable zum einlesen habe ich BYTE und char ausprobiert, teilweise auch dort mit Erfolg, wo die Dezimalzahlen auch nur ein Byte lang sein müssen. Will ich die Bytes in eine Longvariable reinstecken (char oder BYTE einlesen und konvertieren mit strtol, atol, memcpy usw.)meckert z.T der compiler nicht rum, aber beim Testen erscheint, wenn die Datentypen dann konvertiert werden sollen, eine Fehlermeldung in strtol.c zeile 94</p>
<p>Was mache ich falsch? habt ihr Lösungen zum Problem?<br />
MFC-Projekt, VS 2008</p>
<p>unsigned int könnte ich auch an stelle von long nehmen ist aber schwieriger zu handeln, oder?</p>
<pre><code class="language-cpp">char str1, str2;
...
CFile datei( m_pathname, CFile::modeRead); 

datei.Read( &amp;str1, sizeof(str1) ); 
m_strEdit1 = int( str1 );	//m_strEdit1 ist int, Ausgabe funktioniert

datei.Read(&amp;str2, sizeof(str2));
nextadr = atol(reinterpret_cast&lt;const char*&gt;(str2)); //Funktioniert nicht!
m_nextadr = nextadr ;		//beides long
</code></pre>
<p>Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210417/1-byte-in-long</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 11:38:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210417.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Apr 2008 17:54:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 1 Byte in long on Thu, 10 Apr 2008 17:54:29 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>auch wenn das Thema schon leidig oft im Netz besprochen wurde. Ich habe das Problem noch immer und<br />
ich hoffe ihr könnt mir bei helfen:</p>
<p>ich möchte von einer Binärdatei Byteweise Hexzahlen lesen und dezimal ausgeben. Als Variable zum einlesen habe ich BYTE und char ausprobiert, teilweise auch dort mit Erfolg, wo die Dezimalzahlen auch nur ein Byte lang sein müssen. Will ich die Bytes in eine Longvariable reinstecken (char oder BYTE einlesen und konvertieren mit strtol, atol, memcpy usw.)meckert z.T der compiler nicht rum, aber beim Testen erscheint, wenn die Datentypen dann konvertiert werden sollen, eine Fehlermeldung in strtol.c zeile 94</p>
<p>Was mache ich falsch? habt ihr Lösungen zum Problem?<br />
MFC-Projekt, VS 2008</p>
<p>unsigned int könnte ich auch an stelle von long nehmen ist aber schwieriger zu handeln, oder?</p>
<pre><code class="language-cpp">char str1, str2;
...
CFile datei( m_pathname, CFile::modeRead); 

datei.Read( &amp;str1, sizeof(str1) ); 
m_strEdit1 = int( str1 );	//m_strEdit1 ist int, Ausgabe funktioniert

datei.Read(&amp;str2, sizeof(str2));
nextadr = atol(reinterpret_cast&lt;const char*&gt;(str2)); //Funktioniert nicht!
m_nextadr = nextadr ;		//beides long
</code></pre>
<p>Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489963</guid><dc:creator><![CDATA[der_micha1981]]></dc:creator><pubDate>Thu, 10 Apr 2008 17:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to 1 Byte in long on Thu, 10 Apr 2008 18:14:06 GMT]]></title><description><![CDATA[<p>str2 bezieht sich auf den Wert des Chars.<br />
&amp;str2 ist seine Adresse.</p>
<p>Und ein char ist ein einzelner Buchstabe und keine nullterminierte Zeichenkette.<br />
Sieh dir noch mal genau an, wie das mit den C Strings ist und was für einen Parameter atol erwartet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489977</guid><dc:creator><![CDATA[GNU-Fan]]></dc:creator><pubDate>Thu, 10 Apr 2008 18:14:06 GMT</pubDate></item><item><title><![CDATA[Reply to 1 Byte in long on Fri, 11 Apr 2008 07:50:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char c  = 'x';       //einzelnes Zeichen (Character)
char *s = &quot;Hallo!&quot;;  //Array von chars (also ein String)
                     //s[0]=='H'
                     //s[1]=='a'
                     //s[2]=='l'
                     //s[3]=='l'
                     //s[4]=='o'
                     //s[5]=='!'
char c  = 'Hallo!';  //gibt es nicht!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1490141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490141</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 11 Apr 2008 07:50:55 GMT</pubDate></item></channel></rss>