<?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[string += Problem]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;fstream&gt;
using namespace std;

int main(void){

	for(int x = 1; x &lt; 5; x++){

		string spath = &quot;test\\&quot;;

		spath += x;
		spath += &quot;.txt&quot;;

		cout &lt;&lt; spath &lt;&lt; endl;
		/*
		Die Konsole sollte Folgendes ausgeben:
		test\1.txt
		test\2.txt
		test\3.txt
		test\4.txt
		*/
	}
	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
<p>Hallo,</p>
<p>warum erhalte ich nicht mein gewünschtes Ergebnis?</p>
<p>MfG Domi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278064/string-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 08:31:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278064.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Nov 2010 13:58:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 13:58:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;fstream&gt;
using namespace std;

int main(void){

	for(int x = 1; x &lt; 5; x++){

		string spath = &quot;test\\&quot;;

		spath += x;
		spath += &quot;.txt&quot;;

		cout &lt;&lt; spath &lt;&lt; endl;
		/*
		Die Konsole sollte Folgendes ausgeben:
		test\1.txt
		test\2.txt
		test\3.txt
		test\4.txt
		*/
	}
	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
<p>Hallo,</p>
<p>warum erhalte ich nicht mein gewünschtes Ergebnis?</p>
<p>MfG Domi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987505</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Mon, 29 Nov 2010 13:58:38 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:04:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">spath += x + '0';
</code></pre>
<p>Jetzt darf ich dir eine Frage stellen. Warum ist das so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987509</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:10:22 GMT]]></title><description><![CDATA[<p>Die Zahl 5 wird als das Zeichen 5 aus dem Zeichensatz deines Systems aufgefasst. Dies wird im allgemeinen nicht das Zeichen '5' sein. Mach's mal so:</p>
<pre><code class="language-cpp">spath += x + '0';
</code></pre>
<p>Das funktioniert aber nur so lange i einstellig ist.</p>
<p>edit: Oh, jetzt habe ich Nick unbekannts Frage versehentlich beantwortet. Aber löschen mag ich meinen Beitrag auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987510</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:15:03 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Die Zahl 5 wird als das Zeichen 5 aus dem Zeichensatz deines Systems aufgefasst. Dies wird im allgemeinen nicht das Zeichen '5' sein.</p>
</blockquote>
<p>So was ähnliches habe ich mir schon gedacht... Aber was bewirkt jetzt + '0' genau?<br />
Ein weiteres Problem ist, dass in meinem kompletten Programm (das Code Beispiel ist nur ne stark verkürzte Version) x am Ende den Wert 150 hat...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987522</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:22:41 GMT]]></title><description><![CDATA[<p>Benutz' 'nen stringstream</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
...
std::ostringstream s(&quot;test/&quot;);
s &lt;&lt; x &lt;&lt; &quot;.txt&quot;; // kein +'0' nötig, funktioniert wie std::cout
string path(o.str()); // ich mag keine UN
std::cout &lt;&lt; path &lt;&lt; std::endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1987529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987529</guid><dc:creator><![CDATA[iritrea]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:22:41 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:23:58 GMT]]></title><description><![CDATA[<p>Blacky666 schrieb:</p>
<blockquote>
<p>Aber was bewirkt jetzt + '0' genau?</p>
</blockquote>
<p>'0' ist das Zeichen &quot;0&quot;, im ASCII sind die Zahlen 0..9 hintereinander in der Codetabelle. So das ein aufaddieren einer Zahl zwischen 0 und 9 das gewünschte Zeichen liefert.</p>
<p>Blacky666 schrieb:</p>
<blockquote>
<p>Ein weiteres Problem ist, dass in meinem kompletten Programm (das Code Beispiel ist nur ne stark verkürzte Version) x am Ende den Wert 150 hat...</p>
</blockquote>
<p>Dann musst du händisch dies zusammensetzen (Einer-, Zehner und Hunderterstelle).</p>
<p>P.S.: iritrea hat mit dem Streams den sinnvolleren Weg beschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987530</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:24:26 GMT]]></title><description><![CDATA[<p>Blacky666 schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Die Zahl 5 wird als das Zeichen 5 aus dem Zeichensatz deines Systems aufgefasst. Dies wird im allgemeinen nicht das Zeichen '5' sein.</p>
</blockquote>
<p>So was ähnliches habe ich mir schon gedacht... Aber was bewirkt jetzt + '0' genau?</p>
</blockquote>
<p>Schau dir mal eine ASCII-Tabelle an.</p>
<p>Blacky666 schrieb:</p>
<blockquote>
<p>Ein weiteres Problem ist, dass in meinem kompletten Programm (das Code Beispiel ist nur ne stark verkürzte Version) x am Ende den Wert 150 hat...</p>
</blockquote>
<p>Wie SeppJ schon schrieb, geht dies nur mit einstelligen Zahlen. Du kannst dir aber mit sprintf() einen String zusammen basteln. Oder halt über einen Stringstream.</p>
<p><a href="http://www.cppreference.com/wiki/io/sstream/str" rel="nofollow">http://www.cppreference.com/wiki/io/sstream/str</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987532</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:24:26 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:25:34 GMT]]></title><description><![CDATA[<p><code>x + '0'</code> ist eine Addition int + char. Dabei wird das char in einen int konvertiert (d. h. als 1-Byte-Ganzzahl aufgefasst). Wenn es sich um den ASCII-Zeichensatz handelt (was höchstwahrscheinlich zutrift), wird aus '0' die Zahl 48 (google nach ASCII). Da die Ziffern in ASCII in der richtigen Reihenfolge direkt hintereinander stehen, kannst du mit dieser Addition also den ASCII-Wert y der Ziffer x erhalten. Dann addierst du y zu spath. Schauen wir uns mal an, welche Parameter dieser Operator annimmt: <a href="http://www.cplusplus.com/reference/string/string/operator+=/" rel="nofollow">http://www.cplusplus.com/reference/string/string/operator+=/</a><br />
Der <code>operator+= ( char c )</code> passt. Es muss nur noch der int-Wert y in ein char umgewandelt werden. Also wird wieder in der ASCII-Tabelle geschaut, welches Zeichen die Ganzzahl y repräsentiert. Dieses Zeichen wird dann an den String angehängt.</p>
<p>Wenn dein x nun mehr als ein Zeichen hat, funktioniert der Weg natürlich nicht mehr. Dann kannst du z. B. in die FAQ schauen, um andere Lösungen kennenzulernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987533</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:27:35 GMT]]></title><description><![CDATA[<p>Blacky666 schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Die Zahl 5 wird als das Zeichen 5 aus dem Zeichensatz deines Systems aufgefasst. Dies wird im allgemeinen nicht das Zeichen '5' sein.</p>
</blockquote>
<p>So was ähnliches habe ich mir schon gedacht... Aber was bewirkt jetzt + '0' genau?</p>
</blockquote>
<p>chars sind im Prinzip auch nur Zahlen mit denen man rechnen kann. Wenn man i + '0' rechnet, dann addiert man den Wert des Zeichens '0' zu i. Mit &quot;Wert eines Zeichens&quot; meine ich damit die Nummer im Zeichensatz deines Computers (z.B. ASCII, UTF-x, EBCDIC). Der C++ Standard garantiert dir, dass die Zeichen '0', '1', '2', usw. hintereinander im Zeichensatz liegen, daher ist '0' + 0 = '0', '0' + 1 = '1', '0' + 2 = '2', usw.</p>
<p>edit: <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="😮"
    /> So viele Antworten vor mir! Ich bin einfach viel zu lahm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987535</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:27:35 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:36:16 GMT]]></title><description><![CDATA[<p>Finde ich nicht sehr schön, das das funktioniert. Da müsste die Sprache viel strenger sein, und entsprechend der Compiler einen Error melden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987545</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:36:16 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Mon, 29 Nov 2010 14:59:08 GMT]]></title><description><![CDATA[<p>Sehe ich keinen Sinn drin. In C/C++ gibt es nicht den Typ Text. Ein char ist einfach nur eine Ganzzahl im Wertebereich von 8 Bit. Letztendlich ergeben sich daraus auch viele Vorteile, die man in anderen Sprachen umständlich anders lösen muss.<br />
Was hab ich mich immer mit Java rum ärgern müssen. Kann natürlich auch sein, dass ich es mir nur unnötig schwer gemacht habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987565</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 29 Nov 2010 14:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Tue, 30 Nov 2010 10:55:36 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie SeppJ schon schrieb, geht dies nur mit einstelligen Zahlen. Du kannst dir aber mit sprintf() einen String zusammen basteln. Oder halt über einen Stringstream.</p>
</blockquote>
<p>Um das nochmal aufzugreifen:</p>
<pre><code class="language-cpp">int x = 150;
const int bufferSize = 4;
char buf[bufferSize];
sprintf_s(buf, bufferSize, %d, x); //das '_s' heißt, das sprintf überprüft ob x nicht vielleicht zuviele zeichen für deinen buffer hat
spath += buf;
</code></pre>
<p>Wobei stringstreams wohl eher der c++ stil sind als sprintf (ob mit oder ohne _s)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987957</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Tue, 30 Nov 2010 10:55:36 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Tue, 30 Nov 2010 10:58:53 GMT]]></title><description><![CDATA[<p>Hoppala, &quot;&quot; um das '%d' vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987959</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Tue, 30 Nov 2010 10:58:53 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Tue, 30 Nov 2010 11:18:24 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987964</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 30 Nov 2010 11:18:24 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Wed, 01 Dec 2010 11:46:54 GMT]]></title><description><![CDATA[<p>es ist doch viel einfacher x einfach in string umwandeln .<br />
Dann kannst du x zu spath addieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988433</guid><dc:creator><![CDATA[60]]></dc:creator><pubDate>Wed, 01 Dec 2010 11:46:54 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Thu, 02 Dec 2010 08:59:39 GMT]]></title><description><![CDATA[<p>iritrea schrieb:</p>
<blockquote>
<p>Benutz' 'nen stringstream</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
...
std::ostringstream s(&quot;test/&quot;);
s &lt;&lt; x &lt;&lt; &quot;.txt&quot;; // kein +'0' nötig, funktioniert wie std::cout
string path(o.str()); // ich mag keine UN
std::cout &lt;&lt; path &lt;&lt; std::endl;
</code></pre>
</blockquote>
<p>Was genau macht folgende Codezeile:</p>
<p>string path(o.str());</p>
<p>Ich sollte dazu sagen, dass ich noch Anfänger bin. Thx an alle anderen für die Erklärungen.<br />
Wenn ich jetzt die Lösung von iritrea verwende, bekomme ich als ausgabe nur eine Speicheradresse... (0012FF00)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988893</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Thu, 02 Dec 2010 08:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Thu, 02 Dec 2010 09:24:57 GMT]]></title><description><![CDATA[<p>path ist ein neuer String, der am Anfang den Wert o.str() bekommt. o.str() ist die Stringrepräsentation des Stringstreampuffers.</p>
<p>Solche Dinge kannst du ganz einfach in einer Referenz nachgucken (und solltest du auch unbedingt selbstständig versuchen, damit du das lernst):<br />
<a href="http://www.cplusplus.com/reference/string/string/string/" rel="nofollow">http://www.cplusplus.com/reference/string/string/string/</a><br />
<a href="http://www.cplusplus.com/reference/iostream/ostringstream/str/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ostringstream/str/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988903</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 02 Dec 2010 09:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Fri, 03 Dec 2010 09:42:19 GMT]]></title><description><![CDATA[<p>Danke für eure Hilfe. Habe das Problem jetzt folgendermaßen gelöst:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;
using namespace std;

int main(void){
	for(int x = 1; x &lt; 151; x++){
		string spath;
		stringstream sstr;
		sstr &lt;&lt; x;
		sstr &gt;&gt; spath;
		spath += &quot;.txt&quot;;
		spath.insert(0, &quot;test\\&quot;);

		cout &lt;&lt; spath &lt;&lt; endl;
		/*
		Konsolenausgabe:
		test\1.txt
		test\2.txt
		test\3.txt
		test\4.txt
		*/
	}
	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1989441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1989441</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Fri, 03 Dec 2010 09:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to string += Problem on Fri, 03 Dec 2010 10:13:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ostringstream sstr;
sstr &lt;&lt; &quot;test\\&quot; &lt;&lt; x &lt;&lt; &quot;.txt&quot;;
string spath(sstr.str());
cout &lt;&lt; spath &lt;&lt; endl;
</code></pre>
<p>IMHO schöner!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1989457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1989457</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Fri, 03 Dec 2010 10:13:36 GMT</pubDate></item></channel></rss>