<?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[Schleife bei falscher eingabe]]></title><description><![CDATA[<p>Hallo @ll,</p>
<p>Hab mich mal bei euch angemeldet, Ihr habt viele schöne Tipps bei euch im Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich habe eine Frage, weil ich in mein Buch nicht wirklich was dazu finde.<br />
Ich habe mir mal aus langerweile eine Anwendung geschrieben.</p>
<p>Mein Problem ist folgendes :</p>
<p>Ich frage nach einen Betrag, man kann ja nur einen &quot;.&quot; und kein &quot;,&quot; verwenden.<br />
Wenn jetzt der Benutzer aber 5,50 und nicht 5.50 schreibt komm ich in eine Endlos Schleife..</p>
<p>Aber Warum ?</p>
<p>Vielleicht hat einer von euch ein Tipp für mich.<br />
Hier ist mal mein Code.</p>
<p>LG und Danke schonmal.</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;conio.h&gt;

using namespace std;

int main(int argc, char *argv[])
{
    int kippen;
    double betrag;
    int monate;
    int tage;
    char name[10];
    int art;
    int anzahl;
    int schachtel;
    int schachtel2;
    int pack;
    int mota=30;
    int mota2;
    double preis;
    double preis2;

    cout&lt;&lt;&quot;Na dann lass uns mal Rechnen was dein Zigaretten so kosten&quot;&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;&quot;Hallo ....... Mhh Ja ... Wer bist du denn eigentlich ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;name;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;&quot;Ja &quot;&lt;&lt;name&lt;&lt;&quot; dann wollen wir uns mal ausrechnen was du verrauchst&quot;&lt;&lt;endl&lt;&lt;endl;
    do
    {
    cout&lt;&lt;endl&lt;&lt;&quot;Was kostet dich denn eine Schachtel Zigaretten ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;betrag;
    cout&lt;&lt;endl&lt;&lt;&quot;Und wie viele Zigaretten rauchst Du am Tag ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;kippen;
    cout&lt;&lt;endl&lt;&lt;&quot;Wie viele Zigaretten hast du in einer Schachtel&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;schachtel;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;&quot;Willst du Tage oder Monate berechnen&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;&quot;Bei Tagen Druecke die 1 und bei Monaten Druecke die 2&quot;&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;art;
    system(&quot;cls&quot;);
    if (art==1)
    {
    cout&lt;&lt;endl&lt;&lt;&quot;Fuer wie viele Tage willst du berechnen ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;tage;
    anzahl=kippen*tage;
    schachtel2=anzahl/schachtel;
    preis=schachtel2*betrag;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;DU RAUCHST IN &quot;&lt;&lt;tage&lt;&lt;&quot; TAGEN &quot;&lt;&lt;anzahl&lt;&lt;&quot; ZIGARETTEN&quot;&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Das sind &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) !&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Diese &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) kosten dich &quot;&lt;&lt;preis&lt;&lt;&quot; Euro&quot;&lt;&lt;endl;
    }
    else
    if (art==2)
    {
    cout&lt;&lt;endl&lt;&lt;&quot;Fuer wie viele Monate willst du berechnen ?&quot;&lt;&lt;endl;
    cout&lt;&lt;&quot;Ich rechne den Monat mit 30 Tagen&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;monate;
    mota2=monate*mota;
    anzahl=kippen*mota2;
    schachtel2=anzahl/schachtel;
    preis=schachtel2*betrag;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;DU RAUCHST IN &quot;&lt;&lt;monate&lt;&lt;&quot; Monaten &quot;&lt;&lt;anzahl&lt;&lt;&quot; ZIGARETTEN&quot;&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Das sind &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) !&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Diese &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) kosten dich &quot;&lt;&lt;preis&lt;&lt;&quot; Euro&quot;&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
    preis2=schachtel2*preis/monate;
    cout&lt;&lt;endl&lt;&lt;&quot;Das sind pro Monat &quot;&lt;&lt;preis2&lt;&lt;&quot; Euro die du verrauchst&quot;&lt;&lt;endl;
    }
    else 
    {
    cout&lt;&lt;&quot;Du Witzbolt! Du kannst nur zwischen 1 = Tage und 2 = Monate waehlen&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;&quot;Oder Ich habe dich eben gefragt was eine Schachtel kostet&quot;&lt;&lt;endl;
    cout&lt;&lt;&quot;Dann benutze einen Punkt KEIN KOMMA !&quot;&lt;&lt;endl; 
    cout&lt;&lt;&quot;Beispiel: 4.60 und NICHT 4,60&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;Also fangen wir nochmal an&quot;&lt;&lt;endl&lt;&lt;endl;
    }
    }
    while (art&lt;1||art&gt;2);
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;Wer hat es geschrieben ? Druecke irgend eine Taste&quot;&lt;&lt;endl;
    getch();
    system(&quot;iche.jpg&quot;);
    getch();
    return EXIT_SUCCESS;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/277835/schleife-bei-falscher-eingabe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 16:24:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277835.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Nov 2010 10:02:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Thu, 25 Nov 2010 10:02:18 GMT]]></title><description><![CDATA[<p>Hallo @ll,</p>
<p>Hab mich mal bei euch angemeldet, Ihr habt viele schöne Tipps bei euch im Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich habe eine Frage, weil ich in mein Buch nicht wirklich was dazu finde.<br />
Ich habe mir mal aus langerweile eine Anwendung geschrieben.</p>
<p>Mein Problem ist folgendes :</p>
<p>Ich frage nach einen Betrag, man kann ja nur einen &quot;.&quot; und kein &quot;,&quot; verwenden.<br />
Wenn jetzt der Benutzer aber 5,50 und nicht 5.50 schreibt komm ich in eine Endlos Schleife..</p>
<p>Aber Warum ?</p>
<p>Vielleicht hat einer von euch ein Tipp für mich.<br />
Hier ist mal mein Code.</p>
<p>LG und Danke schonmal.</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;conio.h&gt;

using namespace std;

int main(int argc, char *argv[])
{
    int kippen;
    double betrag;
    int monate;
    int tage;
    char name[10];
    int art;
    int anzahl;
    int schachtel;
    int schachtel2;
    int pack;
    int mota=30;
    int mota2;
    double preis;
    double preis2;

    cout&lt;&lt;&quot;Na dann lass uns mal Rechnen was dein Zigaretten so kosten&quot;&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;&quot;Hallo ....... Mhh Ja ... Wer bist du denn eigentlich ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;name;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;&quot;Ja &quot;&lt;&lt;name&lt;&lt;&quot; dann wollen wir uns mal ausrechnen was du verrauchst&quot;&lt;&lt;endl&lt;&lt;endl;
    do
    {
    cout&lt;&lt;endl&lt;&lt;&quot;Was kostet dich denn eine Schachtel Zigaretten ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;betrag;
    cout&lt;&lt;endl&lt;&lt;&quot;Und wie viele Zigaretten rauchst Du am Tag ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;kippen;
    cout&lt;&lt;endl&lt;&lt;&quot;Wie viele Zigaretten hast du in einer Schachtel&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;schachtel;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;&quot;Willst du Tage oder Monate berechnen&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;&quot;Bei Tagen Druecke die 1 und bei Monaten Druecke die 2&quot;&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;art;
    system(&quot;cls&quot;);
    if (art==1)
    {
    cout&lt;&lt;endl&lt;&lt;&quot;Fuer wie viele Tage willst du berechnen ?&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;tage;
    anzahl=kippen*tage;
    schachtel2=anzahl/schachtel;
    preis=schachtel2*betrag;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;DU RAUCHST IN &quot;&lt;&lt;tage&lt;&lt;&quot; TAGEN &quot;&lt;&lt;anzahl&lt;&lt;&quot; ZIGARETTEN&quot;&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Das sind &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) !&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Diese &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) kosten dich &quot;&lt;&lt;preis&lt;&lt;&quot; Euro&quot;&lt;&lt;endl;
    }
    else
    if (art==2)
    {
    cout&lt;&lt;endl&lt;&lt;&quot;Fuer wie viele Monate willst du berechnen ?&quot;&lt;&lt;endl;
    cout&lt;&lt;&quot;Ich rechne den Monat mit 30 Tagen&quot;&lt;&lt;endl&lt;&lt;endl;
    cin&gt;&gt;monate;
    mota2=monate*mota;
    anzahl=kippen*mota2;
    schachtel2=anzahl/schachtel;
    preis=schachtel2*betrag;
    system(&quot;cls&quot;);
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;DU RAUCHST IN &quot;&lt;&lt;monate&lt;&lt;&quot; Monaten &quot;&lt;&lt;anzahl&lt;&lt;&quot; ZIGARETTEN&quot;&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Das sind &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) !&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;&quot;Diese &quot;&lt;&lt;schachtel2&lt;&lt;&quot; Schachtel(n) kosten dich &quot;&lt;&lt;preis&lt;&lt;&quot; Euro&quot;&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;
    preis2=schachtel2*preis/monate;
    cout&lt;&lt;endl&lt;&lt;&quot;Das sind pro Monat &quot;&lt;&lt;preis2&lt;&lt;&quot; Euro die du verrauchst&quot;&lt;&lt;endl;
    }
    else 
    {
    cout&lt;&lt;&quot;Du Witzbolt! Du kannst nur zwischen 1 = Tage und 2 = Monate waehlen&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;&quot;Oder Ich habe dich eben gefragt was eine Schachtel kostet&quot;&lt;&lt;endl;
    cout&lt;&lt;&quot;Dann benutze einen Punkt KEIN KOMMA !&quot;&lt;&lt;endl; 
    cout&lt;&lt;&quot;Beispiel: 4.60 und NICHT 4,60&quot;&lt;&lt;endl&lt;&lt;endl;
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;Also fangen wir nochmal an&quot;&lt;&lt;endl&lt;&lt;endl;
    }
    }
    while (art&lt;1||art&gt;2);
    cout&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl&lt;&lt;&quot;Wer hat es geschrieben ? Druecke irgend eine Taste&quot;&lt;&lt;endl;
    getch();
    system(&quot;iche.jpg&quot;);
    getch();
    return EXIT_SUCCESS;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1985502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985502</guid><dc:creator><![CDATA[zerobfh]]></dc:creator><pubDate>Thu, 25 Nov 2010 10:02:18 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Thu, 25 Nov 2010 10:14:37 GMT]]></title><description><![CDATA[<p>Wenn eine Eingabe fehlsschlägt, dann wird der Eingabestream in einen Fehlerzustand versetzt. Dann schlagen alle weiteren Eingaben fehl, bis man sich darum gekümmert hat. Mit <a href="http://www.cplusplus.com/reference/iostream/ios/clear/" rel="nofollow">clear</a> kann man den Fehlerstatus aufheben. Die Daten die zum Fehlschlagen der Eingabe geführt haben sind dann aber immer noch im Stream, es bietet sich an, diese zu überspringen (z.B. mit <a href="http://www.cplusplus.com/reference/iostream/istream/ignore/" rel="nofollow">ignore</a>).</p>
<p>P.S.: Du liest nicht zufällig &quot;C++ von A bis Z&quot; als Lehrbuch? Hör lieber auf damit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985508</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 25 Nov 2010 10:14:37 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Thu, 25 Nov 2010 10:22:47 GMT]]></title><description><![CDATA[<p>Hallo Danke für die schnelle Antwort.<br />
Ich werd mal versuchen ob ich es schaffe mit den funktionen.</p>
<p>Wenn der Benutzer in Zeile 32 ein Komma schreibt, soll es die ausgabe Zeile 73 - 75 bring. und wieder die Abfrage starten</p>
<p>Nein ich habe 2 Bücher<br />
&quot;c++ Objektorientiertes Programmieren von Anfang an&quot; Helmut Erlenkötter<br />
&quot;c Programmieren von Anfang an&quot; Helmut Erlenkötter</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985510</guid><dc:creator><![CDATA[zerobfh]]></dc:creator><pubDate>Thu, 25 Nov 2010 10:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Thu, 25 Nov 2010 13:57:52 GMT]]></title><description><![CDATA[<p>Vielleicht schreibt JW inzwischen unter einem Pseudonym?</p>
<p>Aber so schlimm sieht der Quelltext doch garnicht aus, bis auf die char Arrays sieht das syntaktisch schon mal wie C++ aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985617</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 25 Nov 2010 13:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Thu, 25 Nov 2010 14:11:30 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>Vielleicht schreibt JW inzwischen unter einem Pseudonym?</p>
<p>Aber so schlimm sieht der Quelltext doch garnicht aus, bis auf die char Arrays sieht das syntaktisch schon mal wie C++ aus.</p>
</blockquote>
<p>Naja. Sehr viel system. getch. Alle Variablen am Anfang. Unnötiges return in der main mit C-Stil Makros. Hat mich jetzt ehrlich gesagt überrascht, dass dies nicht der Wolf war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985627</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 25 Nov 2010 14:11:30 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Thu, 25 Nov 2010 15:38:40 GMT]]></title><description><![CDATA[<p>Der Wolf ?</p>
<p>Mhh also ich bekomms nicht dazwischen.<br />
Kann man denn in einer While Anweisung irgendwie sagen wenn es kein punkt ist bei den Betrag dann spring zurück ?</p>
<p>Ansonsten ist auch net so wild , soweit gehts ja erstmal.<br />
Das getch hab ich wegen eine Pause rein gesetzt.</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985684</guid><dc:creator><![CDATA[zerobfh]]></dc:creator><pubDate>Thu, 25 Nov 2010 15:38:40 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Thu, 25 Nov 2010 19:59:12 GMT]]></title><description><![CDATA[<p>Hab mir den Code jetzt nicht so genau durchgesehen (die fehlenden Einrückungen erschweren etwas den Überblick...), aber auf den ersten Blick würde ich vorschlagen:</p>
<p>Wenn sowohl . als auch , als Eingabe möglich sein sollen, dann lese doch einfach einen String ein, ersetze ein mögliches Komma durch einen Punkt und wandle das Ganze dann in den Double um.</p>
<p>Ach ja: Schau mal auf Deine Variable <code>schachtel</code> . Was passiert, wenn man 0 eingibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1985835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1985835</guid><dc:creator><![CDATA[minastaros]]></dc:creator><pubDate>Thu, 25 Nov 2010 19:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Fri, 26 Nov 2010 11:30:19 GMT]]></title><description><![CDATA[<p>Hallo..</p>
<p>Auch dir schonmal Danke..<br />
Stimmt wenn ich 0 eingebe bei &quot;schachtel&quot; dann bricht es ab wenn es zur rechnung kommt. Danke dir ! Ist mir noch nicht aufgefallen.</p>
<p>Werd mich mal mit den String befassen. Hab sowas bis jetzt noch nicht gemacht.</p>
<p>danke</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986077</guid><dc:creator><![CDATA[zerobfh]]></dc:creator><pubDate>Fri, 26 Nov 2010 11:30:19 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife bei falscher eingabe on Fri, 26 Nov 2010 12:59:20 GMT]]></title><description><![CDATA[<p>Keine Ursache. Ist bei <code>monate</code> das gleiche...</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox41249" /><label for="checkbox41249">nur 10 Zeichen zu Verfügung. Das Problem ist, dass cin das nicht prüft und ggf. </label></div><em>mehr</em> reinschreibt, d.h. einen Buffer Overrun verursacht. Nicht sehr gesund.</p>
<p>Daher solltest Du eher <code>scanf</code> benutzen (die C-Version), oder Du sattelst auf C++ um und verwendest die <code>std::string</code> -Klasse. Die gehen auch mit cin. Im Moment ist es ein Gemisch...</p>
<p>Ach ja: Deine do..while-Schleife soll doch wiederholen, wenn <code>art</code> falsch ist, richtig? Schau Dir mal an, was da evtl. noch mit wiederholt wird; ist das Absicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986164</guid><dc:creator><![CDATA[minastaros]]></dc:creator><pubDate>Fri, 26 Nov 2010 12:59:20 GMT</pubDate></item></channel></rss>