<?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[verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe einen vector&lt;char&gt; in welchem verschiedene daten stecken... an den ersten 4 stellen zum beispiel ein int, an den nächsten 4 stellen ein float etc.</p>
<p>Meine Frage:<br />
Wie kann ich nun elegant diese daten aus dem vector extrahieren bzw wie würdet ihr das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294475/verschiedene-daten-aus-vector-lt-char-gt-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 21:44:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294475.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Oct 2011 17:40:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 17:40:45 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe einen vector&lt;char&gt; in welchem verschiedene daten stecken... an den ersten 4 stellen zum beispiel ein int, an den nächsten 4 stellen ein float etc.</p>
<p>Meine Frage:<br />
Wie kann ich nun elegant diese daten aus dem vector extrahieren bzw wie würdet ihr das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2135722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135722</guid><dc:creator><![CDATA[tr0n]]></dc:creator><pubDate>Tue, 25 Oct 2011 17:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 17:55:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int value = *static_cast&lt;int*&gt;(&amp;vec[0]);
</code></pre>
<p>Wobei int der Typ und 0 der offset ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2135724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135724</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 25 Oct 2011 17:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 18:00:58 GMT]]></title><description><![CDATA[<p>Bequeme Methode:</p>
<pre><code class="language-cpp">stringstream lesestream(string(dein_vector.begin(), dein_vector.end()));
</code></pre>
<p>Und dann wie gewohnt fortfahren.</p>
<p>Performancemethode, um mit viel Code eine einzelne Kopie zu sparen: Man könnte sich einen streambuf schreiben, der direkt auf deinem vector operiert.</p>
<p>edit: Ach, ich habe dich falsch verstanden. Ich dachte in dem vector stünde tatsächlich so etwas wie '1''2''3' und du wolltest den Wert 123 erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2135725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135725</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 25 Oct 2011 18:00:58 GMT</pubDate></item><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 18:14:20 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>du meinst reinterpret_cast oder?</p>
<p>Hmm, hab mal gehört, dass man den vermeiden soll... frag mich aber nicht warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2135727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135727</guid><dc:creator><![CDATA[tr0n]]></dc:creator><pubDate>Tue, 25 Oct 2011 18:14:20 GMT</pubDate></item><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 18:15:53 GMT]]></title><description><![CDATA[<p>tr0n schrieb:</p>
<blockquote>
<p>du meinst reinterpret_cast oder?</p>
<p>Hmm, hab mal gehört, dass man den vermeiden soll... frag mich aber nicht warum?</p>
</blockquote>
<p>Nein ich meine static_cast.<br />
Und ja, reinterpret_cast sollte man vermeiden.<br />
Und auch das Konstrukt von mir hier sollte man nur in Situationen einsetzen wo man weiss dass es OK ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2135729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135729</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 25 Oct 2011 18:15:53 GMT</pubDate></item><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 18:22:27 GMT]]></title><description><![CDATA[<p>@Shade Of Mine<br />
Postest du absichtlich Code der plattformabhängig, und im allgemeinen kein korrektes C++ ist (Alignment etc.)?</p>
<p>Und... wenn du static_cast meinst, dann meinst du falsch. Mit static_cast kannst du nen char* nicht in einen int* verwandeln. Nicht ohne Umweg über void* zumindest.</p>
<p>------------</p>
<p>@tr0n<br />
Korrekterweise macht man das mit memcpy.</p>
<pre><code class="language-cpp">vector&lt;char&gt; data ...  // deine Daten
size_t offset ...      // der Offset wo du nen int lesen willst

int i;
memcpy(&amp;i, &amp;data[offset], sizeof(int));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2135733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135733</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 25 Oct 2011 18:22:27 GMT</pubDate></item><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 18:26:28 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>@Shade Of Mine<br />
Postest du absichtlich Code der plattformabhängig, und im allgemeinen kein korrektes C++ ist (Alignment etc.)?</p>
</blockquote>
<p>Wenn du die Daten direkt als Bytestream hast, dann bist du schon Plattformabhaengig.</p>
<blockquote>
<p>Und... wenn du static_cast meinst, dann meinst du falsch. Mit static_cast kannst du nen char* nicht in einen int* verwandeln. Nicht ohne Umweg über void* zumindest.</p>
</blockquote>
<p>Argh, da war ja was. Mein fehler <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=":/"
      alt="😕"
    /></p>
<p>Aber inwiefern ist es mit memcpy besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2135736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135736</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 25 Oct 2011 18:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to verschiedene daten aus vector&amp;lt;char&amp;gt; auslesen on Tue, 25 Oct 2011 18:36:27 GMT]]></title><description><![CDATA[<p>Was die Darstellung von Integers im Speicher angeht bleibt der Code plattformabhängig, da hast du Recht.</p>
<p>Mit memcpy ist es aber wenigstens OK was Alignment angeht. D.h. es gibt kein UB mehr auf Plattformen wo z.B. ein int immer auf durch 4 teilbaren Adressen stehen muss.</p>
<p>D.h. die memcpy Variante wird immer ohne UB laufen, aber u.U. nicht den gewünschten Wert im Integer erzeugen.</p>
<p>----</p>
<p>Wenn man 100% portierbaren Code haben möchte, dann müsste man hier (wesentlich) mehr Aufwand treiben. U.a. ist ja nicht gesagt dass ein char immer 8 Bit hat und ein int immer 32 uswusf. - da bekommt man ganz schnell ganz viel Code zusammen für so ne einfache Sache wie &quot;lies mir mal nen int aus nem Bytestream&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2135743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2135743</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 25 Oct 2011 18:36:27 GMT</pubDate></item></channel></rss>