<?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[Array trennen]]></title><description><![CDATA[<p>Hi, wie kann ich das folgende Array trennen?<br />
46.0 54.0 080 264 EpbkcraDo<br />
Das heißt, ich möchte die Werte einzeln haben, nach dem Leerzeichen getrennt. Also als Ausgabe sol da folgendes stehen<br />
46.0<br />
54.0<br />
080<br />
264<br />
264<br />
Wie kann ich das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/241899/array-trennen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 22:22:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/241899.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 May 2009 11:40:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array trennen on Wed, 27 May 2009 11:40:27 GMT]]></title><description><![CDATA[<p>Hi, wie kann ich das folgende Array trennen?<br />
46.0 54.0 080 264 EpbkcraDo<br />
Das heißt, ich möchte die Werte einzeln haben, nach dem Leerzeichen getrennt. Also als Ausgabe sol da folgendes stehen<br />
46.0<br />
54.0<br />
080<br />
264<br />
264<br />
Wie kann ich das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716696</guid><dc:creator><![CDATA[herdenmitglied]]></dc:creator><pubDate>Wed, 27 May 2009 11:40:27 GMT</pubDate></item><item><title><![CDATA[Reply to Array trennen on Wed, 27 May 2009 11:46:03 GMT]]></title><description><![CDATA[<p>herdenmitglied schrieb:</p>
<blockquote>
<p>Hi, wie kann ich das folgende Array trennen?<br />
46.0 54.0 080 264 EpbkcraDo<br />
Das heißt, ich möchte die Werte einzeln haben, nach dem Leerzeichen getrennt. Also als Ausgabe sol da folgendes stehen<br />
46.0<br />
54.0<br />
080<br />
264<br />
264<br />
Wie kann ich das machen?</p>
</blockquote>
<p>Indem du die Leerzeichen durch Zeilenumbrüche ersetzt.</p>
<p>Mal im Ernst: wenn du uns ein wenig Code zeigst und dein Problem etwas genauer beschreibst, kann dir viel besser geholfen werden. Deine Beschreibung ist recht dürftig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716702</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 27 May 2009 11:46:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array trennen on Wed, 27 May 2009 12:05:49 GMT]]></title><description><![CDATA[<p>also bis jetzte hab ich folgendes programmeirt:</p>
<p>unsigned char buffer[8192];</p>
<p>int n = read(buffer,sizeof(buffer));<br />
if (n &gt; 0)<br />
{<br />
buffer[n] = '\0';<br />
cout &lt;&lt; buffer &lt;&lt; flush;<br />
}</p>
<p>Damit möchte ich von einer Seriellenschnittstelle datem auslesen. Das klappt auch. Und die Daten stehen jetzt buffer drin.<br />
Als Ausgabe steht folgendes auf dem Bildschirm:<br />
46.0 54.0 080 264 EpbkcraDo<br />
und die einzelnen werte möchte ich jetzt nach dem leerzeichen trennen und getrennt ausgeben<br />
nur wie mache ich das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716716</guid><dc:creator><![CDATA[herdenmitglied]]></dc:creator><pubDate>Wed, 27 May 2009 12:05:49 GMT</pubDate></item><item><title><![CDATA[Reply to Array trennen on Wed, 27 May 2009 12:23:48 GMT]]></title><description><![CDATA[<p>Einige Punte zur Anmerkung erstmal:</p>
<p>- benutz bitte die [cpp]-Tags für C/C++-Code, das machts leichter zu lesen.<br />
- eventuell musst du bei read() von sizeof(buffer) noch 1 abziehen für die '\0' am Ende, sonst gibts Probleme wenn tatsächlich mal 8192 Zeichen gelesen werden.</p>
<p>Zum Vorgehen wie du das char-Array zerlegen kannst:<br />
Es gibt vermutlich C-Funktionen mit denen du einen C-String (denn das ist dein Buffer) in einzelstrings zerlegen kanns. Dein ganzer Code ist bisher C-Stil, es ist aber Entscheidungssache ob du eher C++ oder C schreiben möchtest.<br />
In C++ würde ich den Buffer über einen string an einen stringstream geben und aus diesem in einer Schleife die einzelnen Strings auslesen (operator&gt;&gt; zieht strings aus einem Stream indem er bis zum nächsten Leerzeichen liest).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716725</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 27 May 2009 12:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array trennen on Wed, 27 May 2009 12:26:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//46.0 54.0 080 264 EpbkcraDo
//floatfloatint int string

float a, b;
int c, d;
std::string e; //#include &lt;string&gt;
std::stringstream tmp_buffer; //#include &lt;sstream&gt;
tmp_buffer &lt;&lt; buffer;
tmp_buffer &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d &gt;&gt; e;
</code></pre>
<p>Wenn man die Leerzeichen erzwingen möchte gabs hier iwo ma was von Werner... *sucht*:</p>
<pre><code class="language-cpp">template &lt;char C&gt;
std::istream&amp; Char(std::istream&amp; in)
{
	char c;
	if( in &gt;&gt; c &amp;&amp; c != C )
		in.setstate(std::ios_base::failbit);
	return in;
}

void function()
{
  tmp_buffer &gt;&gt; Char&lt;' '&gt; &gt;&gt; a &gt;&gt; Char&lt;' '&gt; &gt;&gt; b &gt;&gt; Char&lt;' '&gt; &gt;&gt; c &gt;&gt; Char&lt;' '&gt; &gt;&gt; d &gt;&gt; Char&lt;' '&gt; &gt;&gt; e;
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716726</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 27 May 2009 12:26:41 GMT</pubDate></item><item><title><![CDATA[Reply to Array trennen on Wed, 27 May 2009 13:04:00 GMT]]></title><description><![CDATA[<p>Erstmal danke für die schnelle hilfe.<br />
Nur leider ist das noch nicht die Lösung für mein Problem. Wahrscheinlich habe ich mich falsch ausgedrückt.<br />
Ich wollte nicht nach jeder zahl ein Leerzeichen, sondern dass ich hinterher da stehen habe<br />
1.Wert: 46.0<br />
2.Wert: 54.0<br />
3.Wert: 080<br />
4.Wert: 264<br />
5.Wert: EpbkcraDo</p>
<p>so, dass ich jetzt mit jedem Wert einzeln arbeiten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716740</guid><dc:creator><![CDATA[herdenmitglied]]></dc:creator><pubDate>Wed, 27 May 2009 13:04:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array trennen on Wed, 27 May 2009 13:34:59 GMT]]></title><description><![CDATA[<p>herdenmitglied schrieb:</p>
<blockquote>
<p>...so, dass ich jetzt mit jedem Wert einzeln arbeiten kann.</p>
</blockquote>
<p>Aber genau das hast Du doch mit unskilleds Lösung (die ich hier ein klein wenig bearbeite):</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;sstream&gt;

...
float wert1, wert2;
int wert3, wert4;
std::string wert5; 
std::istringstream tmp_buffer(buffer);
tmp_buffer &gt;&gt; wert1 &gt;&gt; wert2 &gt;&gt; wert3 &gt;&gt; wert4 &gt;&gt; wert5;
</code></pre>
<p>Da hast Du hinterher die Werte in den Variablen wert1 - wert5 und kannst mit jeder &quot;einzeln arbeiten&quot;.</p>
<p>Ich habe übrigens die Vermutung, dass Du die Daten in &quot;buffer&quot; bereits aus einem anderen Stream bekommst (Konsole, Datei, ...) ... da kannst Du Dir den Umweg über (tmp_)buffer sparen und gleich schreiben:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;fstream&gt; // falls Datei
#include &lt;iostream&gt; // falls Konsole

...
float wert1, wert2;
int wert3, wert4;
std::string wert5; 

// aus Datei
std::ifstream in(&quot;MeineDatei.txt&quot;);
in &gt;&gt; wert1 &gt;&gt; wert2 &gt;&gt; wert3 &gt;&gt; wert4 &gt;&gt; wert5;

// von Konsole
std::cin &gt;&gt; wert1 &gt;&gt; wert2 &gt;&gt; wert3 &gt;&gt; wert4 &gt;&gt; wert5;
</code></pre>
<p>Zur Info: Der operator&gt;&gt;() ist so gestrickt, dass er false zurückmeldet, wenn die Konvertierung in den Zieltyp nicht klappt (also z.B. &quot;ak&quot; -&gt; float).<br />
Der Stream wird danach auf &quot;ungültig&quot; gesetzt - und erst wieder nutzbar, indem man ihn clear()-t (löscht NICHT den Inhalt!) und ggf. ungültige zeichen entfernt (mittels ignore()).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716752</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 27 May 2009 13:34:59 GMT</pubDate></item></channel></rss>