<?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[Prozentrechner spinnt rum]]></title><description><![CDATA[<p>Hallo,<br />
ich programmiere grade einen Prozentrechner der den Grundwert ermitteln soll.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int ergebnis1, ergebnis2, zahl1, zahl2;

int main(void)
{
start:;
    cout &lt;&lt; &quot;Prozentwert (W) eingeben: &quot;;
    cin &gt;&gt; zahl1;
    cout &lt;&lt; &quot;Prozentsatz (p%) eingeben: &quot;;
    cin &gt;&gt; zahl2;
    ergebnis1 = zahl1 / zahl2;
    ergebnis2 = ergebnis1 * 100;
    cout &lt;&lt; ergebnis2 &lt;&lt; endl;
    cout &lt;&lt; endl;
    goto start;
    return 0;
}
</code></pre>
<p>Wenn ich z.B. 999999999999 oder einen Buchstaben eingebe kommt bei 9999... nur noch</p>
<pre><code>Prozentwert (W) eingeben: Prozentsatz (p%) eingeben: -1908874376
</code></pre>
<p>und bei einem Buchstaben:</p>
<pre><code>Floating point exception: 8
</code></pre>
<p>Was kann ich dagegen tun damit die Fehler nicht mehr kommen?</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325415/prozentrechner-spinnt-rum</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 11:47:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325415.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Apr 2014 16:18:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 16:18:21 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich programmiere grade einen Prozentrechner der den Grundwert ermitteln soll.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int ergebnis1, ergebnis2, zahl1, zahl2;

int main(void)
{
start:;
    cout &lt;&lt; &quot;Prozentwert (W) eingeben: &quot;;
    cin &gt;&gt; zahl1;
    cout &lt;&lt; &quot;Prozentsatz (p%) eingeben: &quot;;
    cin &gt;&gt; zahl2;
    ergebnis1 = zahl1 / zahl2;
    ergebnis2 = ergebnis1 * 100;
    cout &lt;&lt; ergebnis2 &lt;&lt; endl;
    cout &lt;&lt; endl;
    goto start;
    return 0;
}
</code></pre>
<p>Wenn ich z.B. 999999999999 oder einen Buchstaben eingebe kommt bei 9999... nur noch</p>
<pre><code>Prozentwert (W) eingeben: Prozentsatz (p%) eingeben: -1908874376
</code></pre>
<p>und bei einem Buchstaben:</p>
<pre><code>Floating point exception: 8
</code></pre>
<p>Was kann ich dagegen tun damit die Fehler nicht mehr kommen?</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396887</guid><dc:creator><![CDATA[Prozento]]></dc:creator><pubDate>Wed, 30 Apr 2014 16:18:21 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 16:33:03 GMT]]></title><description><![CDATA[<p>Ein <code>int</code> ist nicht beliebig groß. Es gibt aber auch größere Datentypen.<br />
(Bei zu großen Werten kann es einen Überlauf geben, der dann einem großen negativen Wert entspricht.)</p>
<p>Zudem solltest du mal schaun, ob die ganzen Zahlen eine sinnvolle Wahl sind. <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>
<p>Du prüfst nicht, ob die Eingabe erfolgreich war. Daher teilst du wohl durch Null...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396890</guid><dc:creator><![CDATA[lagalopex]]></dc:creator><pubDate>Wed, 30 Apr 2014 16:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 16:29:35 GMT]]></title><description><![CDATA[<blockquote>
<p>999999999999</p>
</blockquote>
<p>Zu Groß. int kann nur (ganzzahlige) Werte im Invervall \[-2.147.483.648, 2.147.483.647\] speichern. Alles andere führt zu vorzeichenbehafteten Überläufen; das resultiert in undefiniertem Verhalten.</p>
<p>Und was bitte erwartest du, wenn du einen Buchstaben eingibst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396892</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 30 Apr 2014 16:29:35 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 16:40:52 GMT]]></title><description><![CDATA[<p>Das eine Fehlermeldung kommt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396895</guid><dc:creator><![CDATA[Prozento]]></dc:creator><pubDate>Wed, 30 Apr 2014 16:40:52 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 16:43:53 GMT]]></title><description><![CDATA[<p>Prozento schrieb:</p>
<blockquote>
<p>Das eine Fehlermeldung kommt</p>
</blockquote>
<p>Das musst du selber programmieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396897</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 30 Apr 2014 16:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 16:50:09 GMT]]></title><description><![CDATA[<p>Wie kann man denn einen Filter erstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396898</guid><dc:creator><![CDATA[Prozento]]></dc:creator><pubDate>Wed, 30 Apr 2014 16:50:09 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 17:23:53 GMT]]></title><description><![CDATA[<p>Prozento schrieb:</p>
<blockquote>
<p>Wie kann man denn einen Filter erstellen?</p>
</blockquote>
<p>Gar nicht (so).<br />
Es wird versucht eine Zahl einzulesen. Schlägt das fehl - weil z.B. ein Buchstabe eingegeben wurde - wird abgebrochen und der Stream in einen Fehler Zustand gesetzt. Mit</p>
<pre><code>if (!cin)
  cerr &lt;&lt; &quot;error&quot;;
</code></pre>
<p>kannst du das abgfragen. Da der operator&lt;&lt; vom Stream, allerdings den Stream selber wieder zurückgibt, kannst du auch kürzer:</p>
<pre><code>if (cin &gt;&gt; val)
  // ok
else
  // fehler
</code></pre>
<p>oder so schreiben. Auch Schleifen sind möglich:</p>
<pre><code>while (!(cin &gt;&gt; val)) // solange das Einlesen nicht klappt
{
  cin.clear(); // resette Fehlerzustand
  cin.ignore(numeric_limits&lt;streamsize&gt;::max, '\n'); // s.u.; erfordert Header limits
}
</code></pre>
<p>Allerdings musst du eine Sache beachten:<br />
Wenn du z.B. abc eingibst, merkt der Stream nach dem Einlesen von a, das da etwas nicht stimmt und bricht ab. Wenn nun erneut versucht einzulesen, ist das nächste Zeichen ein b und er bricht erneut ab. Um das zu vermeiden, wird ignore aufgerufen. ignore nimmt im ersten Parameter die maximale Anzahl an Zeichen, die ignoriert werden numeric_limits&lt;streamsize&gt;::max ist der höchste mögliche Wert von streamsize und bedeutet so viel wie unendlich, der zweite Parameter ist das Zeichen, bei dem gestoppt werden soll.</p>
<pre><code>cin.ignore(numeric_limits&lt;streamsize&gt;::max, '\n');
</code></pre>
<p>überliest alles bis zum nächsten Newline.<br />
BTW: Nutz keine globalen Variablen (besonders nicht für so etwas)!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396901</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 30 Apr 2014 17:23:53 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 19:56:01 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>BTW: Nutz keine globalen Variablen (besonders nicht für so etwas)!</p>
</blockquote>
<p>Auf goto würde ich auch verzichten. Hier einfach durch eine Endlosschleife ersetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396920</guid><dc:creator><![CDATA[patrick246]]></dc:creator><pubDate>Wed, 30 Apr 2014 19:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 21:01:56 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>int kann nur (ganzzahlige) Werte im Invervall \[-2.147.483.648, 2.147.483.647\] speichern. Alles andere führt zu vorzeichenbehafteten Überläufen; das resultiert in undefiniertem Verhalten.</p>
</blockquote>
<p>Optimist.<br />
Schau mal bei <a href="http://www.cplusplus.com/reference/climits/" rel="nofollow">http://www.cplusplus.com/reference/climits/</a> oder <a href="http://en.cppreference.com/w/cpp/language/types" rel="nofollow">http://en.cppreference.com/w/cpp/language/types</a> wo die Grenzen für int mindestens liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396922</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Wed, 30 Apr 2014 21:01:56 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 21:07:24 GMT]]></title><description><![CDATA[<p>Ich habe direkt Annahmen über seine Plattform gemacht und ihm dementsprechend geantwortet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396925</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 30 Apr 2014 21:07:24 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 21:12:06 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Ich habe direkt Annahmen über seine Plattform gemacht und ihm dementsprechend geantwortet.</p>
</blockquote>
<p>Endlich mal einer mit einer funktionierenden Glaskugel <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>
<p>Oder nimmst du Hühnerknochen?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396926</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Wed, 30 Apr 2014 21:12:06 GMT</pubDate></item><item><title><![CDATA[Reply to Prozentrechner spinnt rum on Wed, 30 Apr 2014 21:19:18 GMT]]></title><description><![CDATA[<p>Bei dieser Annahme reicht auch eine Glaskugel aus dem Supermarkt, um richtig zu liegen. Einen nicht-32-Bit-int muss man schon ganz schön lange suchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2396927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2396927</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 30 Apr 2014 21:19:18 GMT</pubDate></item></channel></rss>