<?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[seltsamer fehler]]></title><description><![CDATA[<p>hallo,<br />
ich habe ein problem!<br />
und zwar soll ein string, in den zahlen, die durch kommata getrennt werden, in diese zahlen aufgeteilt werden, die dann in ein array kommen. hab auch nen lösungsweg (der wahrscheinlich sehr unelegant ist, is mir aber jetzt grad auch egal), jedoch wird immer nur die erste zahl sooft geschrieben, wie es eingetragene zahlen gibt.</p>
<pre><code class="language-cpp">//Funktionsdefinitionen
void teilen(string txt)
{
	stringstream sstr; 
	int index=0,l=length(txt),i,j,letztes=-1,zahli;
	string zahls;

	for (i=0; i&lt;=l; i++)
	{
		if (txt[i]==','||txt[i]=='\0')
		{
			j=letztes+1;
			do
			{
				zahls+=txt[j];
				j++;
			}
			while (j&lt;i);
			letztes=i;
			sstr&lt;&lt;zahls;
			sstr&gt;&gt;zahli;
			zahls=&quot;&quot;;
			zahlen[index]=zahli;
			cout&lt;&lt;zahli&lt;&lt;endl;
			index++;
		}
	}
}
</code></pre>
<p>das</p>
<pre><code>cout&lt;&lt;zahli&lt;&lt;endl;
</code></pre>
<p>war nur für mich zu demonstrationszwecken, um zu gucken inwieweit die funktion läuft.</p>
<p>was ist an dem code falsch? ich hab echt lange gesucht und viel ausprobiert, allerdings sieht er für mich relativ richtig aus, wäre über hilfe dankber, Mr. Pink</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145199/seltsamer-fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 04:16:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145199.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Apr 2006 20:19:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to seltsamer fehler on Tue, 25 Apr 2006 20:19:57 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich habe ein problem!<br />
und zwar soll ein string, in den zahlen, die durch kommata getrennt werden, in diese zahlen aufgeteilt werden, die dann in ein array kommen. hab auch nen lösungsweg (der wahrscheinlich sehr unelegant ist, is mir aber jetzt grad auch egal), jedoch wird immer nur die erste zahl sooft geschrieben, wie es eingetragene zahlen gibt.</p>
<pre><code class="language-cpp">//Funktionsdefinitionen
void teilen(string txt)
{
	stringstream sstr; 
	int index=0,l=length(txt),i,j,letztes=-1,zahli;
	string zahls;

	for (i=0; i&lt;=l; i++)
	{
		if (txt[i]==','||txt[i]=='\0')
		{
			j=letztes+1;
			do
			{
				zahls+=txt[j];
				j++;
			}
			while (j&lt;i);
			letztes=i;
			sstr&lt;&lt;zahls;
			sstr&gt;&gt;zahli;
			zahls=&quot;&quot;;
			zahlen[index]=zahli;
			cout&lt;&lt;zahli&lt;&lt;endl;
			index++;
		}
	}
}
</code></pre>
<p>das</p>
<pre><code>cout&lt;&lt;zahli&lt;&lt;endl;
</code></pre>
<p>war nur für mich zu demonstrationszwecken, um zu gucken inwieweit die funktion läuft.</p>
<p>was ist an dem code falsch? ich hab echt lange gesucht und viel ausprobiert, allerdings sieht er für mich relativ richtig aus, wäre über hilfe dankber, Mr. Pink</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045199</guid><dc:creator><![CDATA[Mr. Pink]]></dc:creator><pubDate>Tue, 25 Apr 2006 20:19:57 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Tue, 25 Apr 2006 21:12:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;iterator&gt;
#include &lt;sstream&gt;
using namespace std;

int main()
{
  string str=&quot;1, 2, 3, 4, 5&quot;;
  vector&lt;int&gt; result;

  // Werte aus str in result kopieren
  replace(str.begin(), str.end(), ',', ' ');
  stringstream tmp(str);
  istream_iterator&lt;int&gt; ii(tmp);
  istream_iterator&lt;int&gt; eos;
  copy (ii, eos, back_inserter(result));

  // Werte ausgeben
  ostream_iterator&lt;int&gt; oi(cout, &quot;\n&quot;);
  copy (result.begin(), result.end(), oi);
}
</code></pre>
<p>So funktioniert es auf jedem Fall</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045285</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 25 Apr 2006 21:12:37 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Wed, 26 Apr 2006 06:26:19 GMT]]></title><description><![CDATA[<p>Als Ansatz für dein Programm wäre es doch mal möglich, &quot;zahls&quot; und &quot;sstr.str()&quot; mit auszugeben, möglicherweise steckt dort schon der Wurm drin.</p>
<p>(ansonsten kannst du deine Kommas auch mit string::find() schneller aufspüren und die Teilstrings per string::substr() rausschneiden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045390</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 26 Apr 2006 06:26:19 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Wed, 26 Apr 2006 14:45:33 GMT]]></title><description><![CDATA[<p>hallo,<br />
@lucky_tux: Danke, allerdings sollte der sinn des programms vorallem in der übung liegen, weshalb ich das doch eher nach meiner variante machenmöchte, auch wenn deine vllt besseris; die muss ich mir nochmal genauer angucken, kenne di libs und befehle gar nicht...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: danke, kannte die funktionen gar nicht, werd sie bestimmt mal gebrauchen, allerdings, will ich erstmal viel selber machen, da ich noch nicht richtig in c++ drin bin, so dass jedes problem wahrscheinlich sehr lehrreich is^^</p>
<p>so hab jetzt den fehler gefunden:er liegt in der umwandlung von string nach int!<br />
direkt vor dem umwandeln wird der aktuell zusammengestellte string in zahls richtig ausgegeben, danach wird durch zahli immer nur die erste zahl ausgegeben</p>
<p>wie kann das sein? musste jetzt das erste mal den typ einer variable umwandeln, sodass ich agr keine ahnung habe, was es da noch für möglichkeiten gibt, bzw wann ich welche nehmen soll. kann mir da noch jemand nen passenden tip geben?</p>
<p>thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045760</guid><dc:creator><![CDATA[Mr. Pink]]></dc:creator><pubDate>Wed, 26 Apr 2006 14:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Wed, 26 Apr 2006 15:26:35 GMT]]></title><description><![CDATA[<p>soll wohl irgendwie mit atoi() gehn, weiß allerdings nicht wie man das einsezt.<br />
habs mit</p>
<pre><code class="language-cpp">zahli=atoi(zahls)
</code></pre>
<p>versucht, funktioniert allerings nicht.</p>
<p>wie muss mann das enn dann einseten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045789</guid><dc:creator><![CDATA[Mr. Pink]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Wed, 26 Apr 2006 15:31:37 GMT]]></title><description><![CDATA[<p>ich würde dir von den alten funktionen aus der C-Bibliothek grundsätzlich abraten. Die sind nicht nur fehleranfälliger, sondern unterstützen auch nicht die konzepte der objektorientierten Programmiersprache C++. Du kannst dir zur Typumwandlung vlt mal die Cast-Operatoren aus C++ ansehen. Oder zur Umwandlung von String in einen Zahlentyp die Möglichkeit der Stringstreams.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045794</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Wed, 26 Apr 2006 16:26:58 GMT]]></title><description><![CDATA[<p>mit cast hats bei mir nicht funktioniert und kann auch nicht funktioneren, da zahlentypen ganz anders aufgebaut sind als strings - so in etwa stands zumindest im inet.<br />
mit den streamstrings hab ich ja am anfang probiert (s. erstes posting), jedoch bekam ich da ja immer den anfangswert raus, was ja auch nicht so ganz das wahre ist^^<br />
das muss doch irgendwie gehn, ich kann mir echt nicht vorstellen, dass noch niemand hier ähnliches nicht machen musste.</p>
<p>Mr. Pink</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045835</guid><dc:creator><![CDATA[Mr. Pink]]></dc:creator><pubDate>Wed, 26 Apr 2006 16:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Wed, 26 Apr 2006 16:48:49 GMT]]></title><description><![CDATA[<p>Den Anfangswert bekommst deswegen immer heraus, weil in deinem stringstream die erste Zahl noch drin ist. Du musst ihn mit sstr.str(&quot;&quot;); erstmal leer machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045849</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 26 Apr 2006 16:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Wed, 26 Apr 2006 18:01:52 GMT]]></title><description><![CDATA[<p>hmm, geht leider auch damit nicht, egal an welcher stelle ich sstr.str(&quot;&quot;); schreibe, wird sstr anscheinend ie gelöscht, bzw. dessen inhalt.<br />
wieso muss der überhaupt geleert werden? muss man einer stringvariable doch auch nicht machen...<br />
schade</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045900</guid><dc:creator><![CDATA[Mr. Pink]]></dc:creator><pubDate>Wed, 26 Apr 2006 18:01:52 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Thu, 27 Apr 2006 06:23:14 GMT]]></title><description><![CDATA[<p>Ein Stream ist auch etwas anderes als ein String - und jede neue Eingabe wird ans Ende des bestehenden Puffers angehängt. &quot;sstr.str(&quot;&quot;);&quot; löscht den Puffer des Streams wieder, deshalb mußt du es einsetzen, BEVOR du etwas neues in den Stream schreiben willst - irgendwo zwischen dem if() und dem sstr&lt;&lt;zahls (wo genau hast du denn versucht?).</p>
<p>PS: setz doch mal direkt vor das &quot;zahls=&quot;&quot;;&quot; den Befehl &quot;cout&lt;&lt;sstr.str()&lt;&lt;endl;&quot; und sag mir, was dein Programm ausgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046106</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 27 Apr 2006 06:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Thu, 27 Apr 2006 11:53:34 GMT]]></title><description><![CDATA[<p>okay, die if-anweisung sieht jatzt so aus:</p>
<pre><code class="language-cpp">if (txt[i]==','||txt[i]=='\0')
		{
			j=letztes+1;
			sstr.str(&quot;&quot;);
			do
			{
				zahls+=txt[j];
				j++;
			}
			while (j&lt;i);
			letztes=i;
			sstr&lt;&lt;zahls;
            sstr&gt;&gt;zahli; 
			cout&lt;&lt;sstr.str()&lt;&lt;endl;
			zahls=&quot;&quot;;
			zahlen[index]=zahli;
			cout&lt;&lt;zahli&lt;&lt;endl;
			index++;
		}
</code></pre>
<p>hier ein konsolenauszug:</p>
<pre><code>2,543,75,977,972                //von mir eingegeben
2                               //ausgabe
2                               //ausgabe
                                //ausgabe
2                               //ausgabe
                                //ausgabe
2                               //ausgabe
                                //ausgabe
2                               //ausgabe
                                //ausgabe
2                               //ausgabe
</code></pre>
<p>was auch immer das jetzt zu bedeuten hat.... <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/1046264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046264</guid><dc:creator><![CDATA[Mr. Pink]]></dc:creator><pubDate>Thu, 27 Apr 2006 11:53:34 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Thu, 27 Apr 2006 12:13:15 GMT]]></title><description><![CDATA[<p>Das sieht mir stark nach einem Fehler im String-Stream aus, der die Ein/Ausgabe-Operatoren deaktiviert hat.</p>
<p>*grübelt*<br />
Versuch's mal so:</p>
<pre><code class="language-cpp">if (txt[i]==','||txt[i]=='\0')
{
  j=letztes+1;
  do
  {
    zahls+=txt[j];
    j++;
  }while (j&lt;i);
  letztes=i;

  sstr.str(zahls);
  //Falls es immer noch Probleme gibt, die folgende Zeile aktivieren:
  //sstr.clear();
  sstr&gt;&gt;zahli; 
  cout&lt;&lt;&quot;Stream:&quot;&lt;&lt;sstr.str()&lt;&lt;endl;
  zahls=&quot;&quot;;
  zahlen[index]=zahli;
  cout&lt;&lt;&quot;Zahl:  &quot;&lt;&lt;zahli&lt;&lt;endl;
  index++;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1046286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046286</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 27 Apr 2006 12:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to seltsamer fehler on Thu, 27 Apr 2006 12:59:25 GMT]]></title><description><![CDATA[<p>jau, so hauts hin - mit &quot;sstr.clear();&quot;, sonst wird zahli nie was neues zugewiesen, aber mit gehts problemlos!<br />
vielen danke für die bemühungen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046346</guid><dc:creator><![CDATA[Mr. Pink]]></dc:creator><pubDate>Thu, 27 Apr 2006 12:59:25 GMT</pubDate></item></channel></rss>