<?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[int in char umwandeln]]></title><description><![CDATA[<p>Hallo erstmal!</p>
<p>Kurz kann man mein Problem so darstellen:<br />
Ich möchte einen int-Wert (Wert: 0-255) speichern. Der Speicherplatz soll genau 1 Bit betragen mein Idee war der folgende Code:</p>
<pre><code class="language-cpp">int a = GetDlgItemInt(IDC_???);
char buf[1];
CFile pFile;

sprintf(buf, &quot;%c&quot;, char(a));
pFile.Open(...);
pFile.Write(buf, sizeof(buf));
TRACE1(&quot;Buffergröße:&quot;, sizeof(buf));
pFile.Close();
</code></pre>
<p>Und jetzt die Frage: Warum beträgt sizeof(buf) 0 und nicht 1???</p>
<p>Wäre dankbar, wenn ihr mir helfen könntet!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/63697/int-in-char-umwandeln</link><generator>RSS for Node</generator><lastBuildDate>Thu, 04 Jun 2026 15:26:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/63697.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Feb 2004 07:09:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 07:09:22 GMT]]></title><description><![CDATA[<p>Hallo erstmal!</p>
<p>Kurz kann man mein Problem so darstellen:<br />
Ich möchte einen int-Wert (Wert: 0-255) speichern. Der Speicherplatz soll genau 1 Bit betragen mein Idee war der folgende Code:</p>
<pre><code class="language-cpp">int a = GetDlgItemInt(IDC_???);
char buf[1];
CFile pFile;

sprintf(buf, &quot;%c&quot;, char(a));
pFile.Open(...);
pFile.Write(buf, sizeof(buf));
TRACE1(&quot;Buffergröße:&quot;, sizeof(buf));
pFile.Close();
</code></pre>
<p>Und jetzt die Frage: Warum beträgt sizeof(buf) 0 und nicht 1???</p>
<p>Wäre dankbar, wenn ihr mir helfen könntet!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/451186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451186</guid><dc:creator><![CDATA[a]]></dc:creator><pubDate>Wed, 04 Feb 2004 07:09:22 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 07:12:18 GMT]]></title><description><![CDATA[<p>Ich bins noch mal, ungenehmer Tippfehler:</p>
<p>Die Tracezeile sollte so aussehen:</p>
<p>TRACE1(&quot;Buffergröße: %i&quot;, sizeof(buf));</p>
<p>und der Integerwert von GetDlgItemText(...) hat eine Größe von 0-255.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/451190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451190</guid><dc:creator><![CDATA[a]]></dc:creator><pubDate>Wed, 04 Feb 2004 07:12:18 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 12:32:17 GMT]]></title><description><![CDATA[<p>Ich kann dir zwar keine Antwort auf deine Frage, aber mal noch ne andere Sache. Wenn du das so deklarierst <strong>char buf[1]</strong>, dann kannst du doch nie einen Wert dort speichern, weil in diesem &quot;einem Feld&quot; immer &quot;0&quot; stehen wird um den String abzuschließen. Oder liege ich jetzt total daneben?</p>
<p>Dann ne andere Frage, wie willst du denn 256 (0-255) verschiedene Werte mit 2 (0, 1) möglichen Werten unterscheiden? Schliesslich willst du nur ein Bit verwenden. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/451415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451415</guid><dc:creator><![CDATA[Maffe001]]></dc:creator><pubDate>Wed, 04 Feb 2004 12:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 12:37:59 GMT]]></title><description><![CDATA[<p>Maffe001 schrieb:</p>
<blockquote>
<p>Ich kann dir zwar keine Antwort auf deine Frage, aber mal noch ne andere Sache. Wenn du das so deklarierst <strong>char buf[1]</strong>, dann kannst du doch nie einen Wert dort speichern, weil in diesem &quot;einem Feld&quot; immer &quot;0&quot; stehen wird um den String abzuschließen. Oder liege ich jetzt total daneben?</p>
<p>Dann ne andere Frage, wie willst du denn 256 (0-255) verschiedene Werte mit 2 (0, 1) möglichen Werten unterscheiden? Schliesslich willst du nur ein Bit verwenden. <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>
</blockquote>
<p>Nullterminierter String ist nicht zwingend da, aber man kann ihn halt weglassen. Ist nur arg unfein.</p>
<p>Zu Deiner Frage:</p>
<p>Ich denke da ist nen kleiner Fehler im Code bei TRACE1</p>
<pre><code class="language-cpp">TRACE1(&quot;Buffergröße: %d&quot;, sizeof(buf));
</code></pre>
<p>Der Platzhalter für die Variable fehlt dort (siehe MSDN).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/451420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451420</guid><dc:creator><![CDATA[Frenzy]]></dc:creator><pubDate>Wed, 04 Feb 2004 12:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 12:45:03 GMT]]></title><description><![CDATA[<blockquote>
<p>Nullterminierter String ist nicht zwingend da, aber man kann ihn halt weglassen. Ist nur arg unfein.</p>
</blockquote>
<p>Ich weiss, aber wenn man <strong>sprintf(..)</strong> verwendet, dann ist da auch ein nullterminierender String drin. Nö? Oder?</p>
<p>Trotzdem bin ich auf die Antwort der meiner zweiten Frage gespannt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/451431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451431</guid><dc:creator><![CDATA[Maffe001]]></dc:creator><pubDate>Wed, 04 Feb 2004 12:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 12:50:57 GMT]]></title><description><![CDATA[<p>Maffe001 schrieb:</p>
<blockquote>
<blockquote>
<p>Nullterminierter String ist nicht zwingend da, aber man kann ihn halt weglassen. Ist nur arg unfein.</p>
</blockquote>
<p>Ich weiss, aber wenn man <strong>sprintf(..)</strong> verwendet, dann ist da auch ein nullterminierender String drin. Nö? Oder?</p>
<p>Trotzdem bin ich auf die Antwort der meiner zweiten Frage gespannt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>sprintf zählt den nullterminierenden nicht mit. Wenn der also nicht drin ist, macht es denke ich mal nix, oder?</p>
<p>Eine Antwort auf Deine zweite Frage wäre sicherlich interessant Maffe001 <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>
]]></description><link>https://www.c-plusplus.net/forum/post/451446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451446</guid><dc:creator><![CDATA[Frenzy]]></dc:creator><pubDate>Wed, 04 Feb 2004 12:50:57 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 13:00:10 GMT]]></title><description><![CDATA[<p>Man könnte ihm natürlich auch noch verraten, dass <strong>char buf[1]</strong> nicht 1 Bit ist sondern ja auch schon 8 Bit, oder waren's 8 Byte?, (? Ich bin immer so unsicher bei solchen Sachen :D) im Speicher einnimmt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/451462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451462</guid><dc:creator><![CDATA[Maffe001]]></dc:creator><pubDate>Wed, 04 Feb 2004 13:00:10 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 13:09:25 GMT]]></title><description><![CDATA[<p>und dann sollte sizeof(buf) == 4 sein, wenn buf als char buf[1]; deklariert ist! (Erriner dich, die variable eines Array ist eigentlich der <strong>Zeiger</strong> auf das erste Element ! )<br />
Warum ueberhaupt array, versteh ich auch ned :p</p>
<p>Nun noch mal zum speichern, willst du den Wert binaer oder in textform in die datei schreiben ? fuer die Textform brauchst 2 Byte (Hexadezimal) muss ja 00 - FF sein :p<br />
wenn binaer, dann langt 1 Byte . (ich nehm mal an, das du mit Bit Byte meinst.</p>
<p>Das umwandeln in text kannst mit sprintf machen ... aber halt sprintf ist die ansiversion, die windows TCHAR version ist _stprintf !</p>
<p>Aber ich bin mich echt nicht sicher, wass du willst ...</p>
<blockquote>
<p>pFile.Write(buf, sizeof(buf));</p>
</blockquote>
<p>Sieht nach binaer aus ???</p>
<blockquote>
<p>sprintf(buf, &quot;%c&quot;, char(a));</p>
</blockquote>
<p>Sieht nach Text konversion aus ???</p>
<p>Was nu ?</p>
<p>Willst binaer schreiben (1 Byte ) dann :</p>
<pre><code class="language-cpp">int a = GetDlgItemInt(IDC_???); 
unsigned char buf = static_cast&lt;unsigned char&gt;(a);
CFile pFile; 
// ... 
pFile.Write(buf, sizeof(buf));
</code></pre>
<p>willst Text schreiben, und du nimmst eh CStdioFile, dann nimm auch CString !</p>
<pre><code class="language-cpp">int a = GetDlgItemInt(IDC_???); 
CString strBuf;
strBuf.format(_T(&quot;%2.2X&quot;),a);
CStdioFile pFile; 
// ... 
pFile.WriteString(strBuf);
</code></pre>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/451474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451474</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Wed, 04 Feb 2004 13:09:25 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 13:55:10 GMT]]></title><description><![CDATA[<p>Scheinbar hatte ich mein Problem etwas zu verschlüsselt geschildert, daher ein neuer Ansatz:</p>
<p>Mein Hauptanliegen war es, eine Zahlenwert von 0 bis 255 möglichst Platz sparend zu speichern. Da 1 Byte (ich meinte tatsächlich Byte) 256 Speichermöglichkeiten zur Verfügung stellt, wäre das doch ideal.</p>
<p>So soll gespeichert werden:<br />
Der Zahlenwert 0 als char(0)<br />
Der Zahlenwert 1 als char(1)<br />
...<br />
Der Zahlenwert 255 als char(255)</p>
<p>Das Problem ist nur: Wie bekomme ich die Zahl in das Byte?</p>
<p>Der Code</p>
<pre><code class="language-cpp">int a = 5;              // z.B.
char buffer[255];       // Größe spielt ja keine Rolle
...
sprintf(buffer, &quot;%c&quot;, char(a));
pFile.Write(buffer, sizeof(buffer));
</code></pre>
<p>funktioniert leider nicht. Mit Hilfe der Trace-Leiste (s.o.) stelle ich fest, das die Größe des Buffers 0 beträgt und nicht 1 wie erwartet.</p>
<p>Also immernoch die Frage, wie kriege ich die Zahl in das Byte?</p>
<p>____________________________________________________________________________<br />
Ich glaube, so richtig konnten mir eure Beiträge nicht helfe, hoffe aber, dass ich mein Problem nun eindeutig geschildert habe...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/451554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451554</guid><dc:creator><![CDATA[a]]></dc:creator><pubDate>Wed, 04 Feb 2004 13:55:10 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Wed, 04 Feb 2004 16:29:52 GMT]]></title><description><![CDATA[<p>Irgendwie hab ich mit deinen Formulierungen leichte Probs ...</p>
<blockquote>
<p>Zahlenwert von 0 bis 255</p>
</blockquote>
<p>Also ein unsigned char !</p>
<blockquote>
<p>// Größe spielt ja keine Rolle</p>
</blockquote>
<p>Also, wer das behaupted, luegt ! ... Jaja Frauen luegen manchmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
DU meinst sicher, das deine groesse dynamisch ist !</p>
<p>Wenn ich dich richtig verstehe<br />
eine Zahl hat bei dir nen wertebereich von 0..255<br />
du willst <strong>mehrere</strong> Zahlen aufs mal in die Datei <strong>binaer</strong> (also nicht mit texteditor in klarform erkennbar) wegschreiben.</p>
<p>ALso ca sowas ....</p>
<pre><code class="language-cpp">#define ANZ 255; 

unsigned char buffer[ANZ]; 
// irgendwo deine werte abfragen und ins array schreiben ... 
for(size_t i = 0; i &lt; ANZ; ++i)
{
    // irgendwo nen int herbekommen 
    int iwert = 42; 
    // ins array schreiben 
    buffer[i]= static_cast&lt;unsigned char&gt;(iwert);
}
// Datei vorbereiten ... 
CFile File;
File.open(..);
// hier array in die datei schreiben 
File.write(buffer,sizeof(unsigned char)*ANZ);
</code></pre>
<p>Meinst du sowas??? Oder lieg ich total schief ? (wobei hier die groesse statisch ist ... )</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/451742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/451742</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Wed, 04 Feb 2004 16:29:52 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Thu, 05 Feb 2004 08:36:05 GMT]]></title><description><![CDATA[<p>Das klingt schon anders. Ich ziehe alle meine Einwände zurück. Ich hab eine Idee, die auch funktionieren könnte. Sie hat zwar nicht viel mit dem bisher geposteten zu tun, aber vielleicht interessiert's dich.<br />
Man könnte 256 Werte auch so codieren, in dem man einfach</p>
<pre><code class="language-cpp">char Buf [1];

Buf = 0; //geht natürlich auch mit allen anderen Zahlenwerten bis 255
</code></pre>
<p>macht. Natürlich ist die Auswertung ein bisschen eklig und es stehen auch nicht die Zahlen ansich dort drin sondern die ASCII-Zeichen, die damit bezeichnet werden.</p>
<p>Maffe :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452233</guid><dc:creator><![CDATA[Maffe001]]></dc:creator><pubDate>Thu, 05 Feb 2004 08:36:05 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Thu, 05 Feb 2004 08:54:12 GMT]]></title><description><![CDATA[<p>Ich glaub ich verzweifel grad ....</p>
<blockquote>
<pre><code class="language-cpp">char Buf [1]; 
 
Buf = 0; //geht natürlich auch mit allen anderen Zahlenwerten bis 255
</code></pre>
</blockquote>
<p>Was glaubst du, was dieser Code tut ... erklaer uns das bitte mal!</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452245</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Thu, 05 Feb 2004 08:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Thu, 05 Feb 2004 10:37:12 GMT]]></title><description><![CDATA[<p>Na er übergibt an <strong>Buf</strong> das ASCII-Zeichen mit dem Dezimalwert 0. In dem Fall wäre das <em>NUL</em>, also Stringende, wenn du so willst.</p>
<pre><code class="language-cpp">Buf = 65;
</code></pre>
<p>Das wäre jetzt zum Beispiel <em>A</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452308</guid><dc:creator><![CDATA[Maffe001]]></dc:creator><pubDate>Thu, 05 Feb 2004 10:37:12 GMT</pubDate></item><item><title><![CDATA[Reply to int in char umwandeln on Thu, 05 Feb 2004 15:19:51 GMT]]></title><description><![CDATA[<p>Danke, die letzten Beiträge haben mir weitergeholfen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452581</guid><dc:creator><![CDATA[a]]></dc:creator><pubDate>Thu, 05 Feb 2004 15:19:51 GMT</pubDate></item></channel></rss>