<?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[Mit Strings rechnen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einige Zahlen mit C++ in eine TXT-Datei gespeichert und diese zeilenweise wieder ausgelesen und in verschiedene Variablen gespeichert:</p>
<pre><code class="language-cpp">//Die Variablen
string Anzahl, Alter, Gewicht;

//Datei öffnen
ifstream f (&quot;datei.txt&quot;);

//Variable für die einzelnen Zeilen
string Zeile;

 //Zeile 1 lesen und Wert in Variable &quot;Anzahl&quot; speichern
 Zeile = &quot;1&quot;;
 getline (f, Zeile);
 Anzahl = Zeile;

 //Zeile 2 lesen und Wert in Variable &quot;Alter&quot; speichern
 Zeile = &quot;2&quot;;
 getline (f, Zeile);
 Alter = Zeile;

 //Zeile 3 lesen und Wert in Variable &quot;Gewicht&quot; speichern
 Zeile = &quot;3&quot;;
 getline (f, Zeile);
 Gewicht = Zeile;
</code></pre>
<p>Das mit dem Auslesen und Speichern klappt auch super. Allerdings habe ich nur String-Variablen und da es sich um Zahlen handelt, möchte ich diese als Integer haben. Da habe ich auch eine Funktion zum Umwandeln (mit stringstreams) und das klappt auch.</p>
<p>ABER:<br />
Wie kann ich jetzt damit rechnen? Wandle ich die Strings evtl. an falscher Stelle um?</p>
<pre><code class="language-cpp">//An anderer Stelle soll von Anzahl 1 abgezogen werden, wenn man was macht
Anzahl -= 1;
</code></pre>
<p>So klappt das nicht, da &quot;Anzahl&quot; ja noch ein String ist. Also habe ich es mal so versucht:</p>
<pre><code class="language-cpp">StringToInteger(Anzahl) -= 1;
</code></pre>
<p>Da schreibt er die Fehlermeldung: &quot;Linker Operand muss ein L-Wert sein&quot;.</p>
<p>Auch so habe ich es mal versucht:</p>
<pre><code class="language-cpp">Anzahl = StringToInteger(Anzahl) - 1;
</code></pre>
<p>Da gibt er mit als Ergebnis nur &quot;Z&quot; aus. Wenn man es nochmal zur Laufzeit um 1 verringert, gibt er immer nur &quot;.&quot; aus <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>
<p>Ich hoffe, ihr könnt mir da ein wenig helfen. Bin noch nicht so erfahren mit C++!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292818/mit-strings-rechnen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 16:32:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292818.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Sep 2011 16:02:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mit Strings rechnen? on Sun, 18 Sep 2011 16:02:27 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einige Zahlen mit C++ in eine TXT-Datei gespeichert und diese zeilenweise wieder ausgelesen und in verschiedene Variablen gespeichert:</p>
<pre><code class="language-cpp">//Die Variablen
string Anzahl, Alter, Gewicht;

//Datei öffnen
ifstream f (&quot;datei.txt&quot;);

//Variable für die einzelnen Zeilen
string Zeile;

 //Zeile 1 lesen und Wert in Variable &quot;Anzahl&quot; speichern
 Zeile = &quot;1&quot;;
 getline (f, Zeile);
 Anzahl = Zeile;

 //Zeile 2 lesen und Wert in Variable &quot;Alter&quot; speichern
 Zeile = &quot;2&quot;;
 getline (f, Zeile);
 Alter = Zeile;

 //Zeile 3 lesen und Wert in Variable &quot;Gewicht&quot; speichern
 Zeile = &quot;3&quot;;
 getline (f, Zeile);
 Gewicht = Zeile;
</code></pre>
<p>Das mit dem Auslesen und Speichern klappt auch super. Allerdings habe ich nur String-Variablen und da es sich um Zahlen handelt, möchte ich diese als Integer haben. Da habe ich auch eine Funktion zum Umwandeln (mit stringstreams) und das klappt auch.</p>
<p>ABER:<br />
Wie kann ich jetzt damit rechnen? Wandle ich die Strings evtl. an falscher Stelle um?</p>
<pre><code class="language-cpp">//An anderer Stelle soll von Anzahl 1 abgezogen werden, wenn man was macht
Anzahl -= 1;
</code></pre>
<p>So klappt das nicht, da &quot;Anzahl&quot; ja noch ein String ist. Also habe ich es mal so versucht:</p>
<pre><code class="language-cpp">StringToInteger(Anzahl) -= 1;
</code></pre>
<p>Da schreibt er die Fehlermeldung: &quot;Linker Operand muss ein L-Wert sein&quot;.</p>
<p>Auch so habe ich es mal versucht:</p>
<pre><code class="language-cpp">Anzahl = StringToInteger(Anzahl) - 1;
</code></pre>
<p>Da gibt er mit als Ergebnis nur &quot;Z&quot; aus. Wenn man es nochmal zur Laufzeit um 1 verringert, gibt er immer nur &quot;.&quot; aus <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>
<p>Ich hoffe, ihr könnt mir da ein wenig helfen. Bin noch nicht so erfahren mit C++!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120878</guid><dc:creator><![CDATA[CV]]></dc:creator><pubDate>Sun, 18 Sep 2011 16:02:27 GMT</pubDate></item><item><title><![CDATA[Reply to Mit Strings rechnen? on Sun, 18 Sep 2011 16:15:47 GMT]]></title><description><![CDATA[<p>CV schrieb:</p>
<blockquote>
<pre><code class="language-cpp">StringToInteger(Anzahl) -= 1;
</code></pre>
<p>Da schreibt er die Fehlermeldung: &quot;Linker Operand muss ein L-Wert sein&quot;.</p>
</blockquote>
<p>Da hat er auch recht. <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="😉"
    /><br />
Die Funktion StringToInteger gibt wahrscheinlich einen &quot;int&quot; zurück. Aber keine Variable, sondern einen Wert vom Typ int. Einem Wert kann man aber logischerweise nichts zuweisen, sonst könnte man ja auch &quot;5 = 2&quot; schreiben.</p>
<p>CV schrieb:</p>
<blockquote>
<p>Auch so habe ich es mal versucht:</p>
<pre><code class="language-cpp">Anzahl = StringToInteger(Anzahl) - 1;
</code></pre>
</blockquote>
<p>Anzahl bleibt hier aber ein String und keine Zahl!</p>
<p>Lösung: Nach Zahl umwandeln, dann rechnen:</p>
<pre><code class="language-cpp">int amount = StringToInteger(buf); // Anzahl wäre hier buf, nicht verwirren lassen
amount -= 1;
std::cout &lt;&lt; amount; // Hier müsste wieder nach &quot;string&quot; umgewandelt werden, aber die Standard-Streams können das alleine.
</code></pre>
<p>Und wo wir gerade beim Thema Streams sind:</p>
<pre><code class="language-cpp">int anzahl;
ifstream file(&quot;test.txt&quot;);
file &gt;&gt; anzahl;
anzahl -= 1;
ofstream outfile(&quot;out.txt&quot;);
outfile &lt;&lt; anzahl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2120886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120886</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 18 Sep 2011 16:15:47 GMT</pubDate></item><item><title><![CDATA[Reply to Mit Strings rechnen? on Sun, 18 Sep 2011 16:24:17 GMT]]></title><description><![CDATA[<p>Danke dir cooky451. Klappt jetzt alles <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/2120893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120893</guid><dc:creator><![CDATA[CV]]></dc:creator><pubDate>Sun, 18 Sep 2011 16:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to Mit Strings rechnen? on Sun, 18 Sep 2011 16:31:19 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Und wo wir gerade beim Thema Streams sind:</p>
<pre><code class="language-cpp">int anzahl;
ifstream file(&quot;test.txt&quot;);
file &gt;&gt; anzahl;
anzahl -= 1;
ofstream outfile(&quot;out.txt&quot;);
outfile &lt;&lt; anzahl;
</code></pre>
</blockquote>
<p>Zeig doch gleich &lt;fstream&gt; ..!</p>
<pre><code class="language-cpp">int anzahl;
fstream file(&quot;test.txt&quot;,ios::out|ios::in|ios::trunc|ios::app);
file &gt;&gt; anzahl;
--anzahl;//Nimm ein präfix-dekrement
file &lt;&lt; anzahl;
file.close();
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120895</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 18 Sep 2011 16:31:19 GMT</pubDate></item><item><title><![CDATA[Reply to Mit Strings rechnen? on Sun, 18 Sep 2011 16:56:28 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">--anzahl;//Nimm ein präfix-dekrement
</code></pre>
</blockquote>
<p>Bei int ist das egal.</p>
<p>Hacker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">file.close();
</code></pre>
</blockquote>
<p>Wenn dich der Erfolg nicht interessiert, verlass dich auf RAII.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120903</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 18 Sep 2011 16:56:28 GMT</pubDate></item><item><title><![CDATA[Reply to Mit Strings rechnen? on Sun, 18 Sep 2011 17:22:26 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">--anzahl;//Nimm ein präfix-dekrement
</code></pre>
</blockquote>
<p>Bei int ist das egal.</p>
</blockquote>
<p>Ist es auch, es ist nur kürzer.<br />
Sorry, war unnötig das zu Kommentieren (die Anweisung im Code).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120931</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 18 Sep 2011 17:22:26 GMT</pubDate></item></channel></rss>