<?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[C++ Programm läuft nich so, wie es soll]]></title><description><![CDATA[<p>Hey ihr,<br />
eigentlich sollte das folgende Programm so funktionieren:</p>
<p>Ich gebe einige Zahlenwerte nacheinander ein.<br />
Dann drücke ich [ENTER] und die Summe aller eingegebenen Werte wird ausgegeben.<br />
Doch leider funktioniert das nicht.</p>
<pre><code>#include &lt;iostream&gt;
int main()
{
   int sum = 0, value;
   while(std::cin &gt;&gt; value)
      sum+=value;
   std::cout &lt;&lt; &quot;Summe ist: &quot; &lt;&lt; sum &lt;&lt; std::endl;
   return 0;        
}
</code></pre>
<p>Compiler ist: Dev C++</p>
<p>Kann mir wer meinen Fehler sagen?<br />
In meinem Buch steht, dass da Programm eigentlich laufen sollte.<br />
Leider jedoch wird die letzte Zeile nachdem [ENTER] gedrückt wurde einfach ignoriert.</p>
<p>cya<br />
David</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192080/c-programm-läuft-nich-so-wie-es-soll</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 07:59:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192080.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Sep 2007 11:49:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 11:49:24 GMT]]></title><description><![CDATA[<p>Hey ihr,<br />
eigentlich sollte das folgende Programm so funktionieren:</p>
<p>Ich gebe einige Zahlenwerte nacheinander ein.<br />
Dann drücke ich [ENTER] und die Summe aller eingegebenen Werte wird ausgegeben.<br />
Doch leider funktioniert das nicht.</p>
<pre><code>#include &lt;iostream&gt;
int main()
{
   int sum = 0, value;
   while(std::cin &gt;&gt; value)
      sum+=value;
   std::cout &lt;&lt; &quot;Summe ist: &quot; &lt;&lt; sum &lt;&lt; std::endl;
   return 0;        
}
</code></pre>
<p>Compiler ist: Dev C++</p>
<p>Kann mir wer meinen Fehler sagen?<br />
In meinem Buch steht, dass da Programm eigentlich laufen sollte.<br />
Leider jedoch wird die letzte Zeile nachdem [ENTER] gedrückt wurde einfach ignoriert.</p>
<p>cya<br />
David</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362507</guid><dc:creator><![CDATA[David777]]></dc:creator><pubDate>Mon, 10 Sep 2007 11:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 12:01:22 GMT]]></title><description><![CDATA[<p>1.)</p>
<p>David777 schrieb:</p>
<blockquote>
<p>...<br />
Doch leider funktioniert das nicht....</p>
</blockquote>
<p>Ist keine Fehlerbeschreibung.</p>
<p>2.) (Vermutung) -&gt; FAQ/&quot;Konsole schließt automatisch&quot;</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362514</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 10 Sep 2007 12:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 12:21:52 GMT]]></title><description><![CDATA[<p>Fehler ist im Prinzip nur, dass die Console geschlossen wird, sobald ENTER gedrückt wird.<br />
Ausgegeben wird nichts.<br />
Habe auch zum Test mal das Programm so erweiter:</p>
<pre><code>#include &lt;iostream&gt;
int main()
{
   int sum = 0, value;
   while(std::cin &gt;&gt; value)
      sum+=value;
   std::cout &lt;&lt; &quot;Summe ist: &quot; &lt;&lt; sum &lt;&lt; std::endl;
   std::cin &gt;&gt; sum;
   return 0;        
}
</code></pre>
<p>Einfach, damit das Programm noch wartet bevor es geschlossen wird.</p>
<p>Geht leider so auch nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f622.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--crying_face"
      title=";-("
      alt="😢"
    /></p>
<p>Wird einfach nichts ausgegeben.</p>
<p>cya<br />
David</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362526</guid><dc:creator><![CDATA[David777]]></dc:creator><pubDate>Mon, 10 Sep 2007 12:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 12:28:56 GMT]]></title><description><![CDATA[<p>David777 schrieb:</p>
<blockquote>
<p>Fehler ist im Prinzip nur, dass die Console geschlossen wird, sobald ENTER gedrückt wird....</p>
</blockquote>
<p>-&gt; 2.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362530</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 10 Sep 2007 12:28:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 12:35:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
int main()
{
   int sum = 0, value;
   while(std::cin &gt;&gt; value)
      sum+=value;
   std::cout &lt;&lt; &quot;Summe ist: &quot; &lt;&lt; sum &lt;&lt; std::endl;
   std::cin &gt;&gt; sum;
}
</code></pre>
<p>kann nicht gehen. Du ließt erst solange ein, bis std::cin das failbit gesetzt hat und verlangst dann, das es trotzdem danach wieder gehen soll?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;limits&gt;

int main()
{
    unsigned int sum = 0, value;
    while (std::cin &gt;&gt; value) sum += value;
    std::cout &lt;&lt; &quot;Summe: &quot; &lt;&lt; sum &lt;&lt; std::endl;

    std::cin.clear();
    std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
    std::cin.get();
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362538</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 10 Sep 2007 12:35:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 13:05:07 GMT]]></title><description><![CDATA[<p>Eine ähnliche Vermutung hatte ich auch, aber im Buch steht genau das Gegenteil:</p>
<p>[quote = &quot;C++ Primer&quot;]Bis wir auf EOF oder einen anderen Eingabestring stoßen, klappt der Test und der Rumpf der while-Anweisung wird ausgeführt. Dieser besteht aus einer einzigen Anweisung, die den zusammengesetzten Zuweisungsoperator benutzt. Der Operator addiert seinen rechten Operanden zum linken.</p>
<p>Sobald der Test fehlschlägt, wird die while-Schleife beendet und wir führen die darauf folgenden Anweisungen aus. Sie gibt Sum und danach endl aus, was wiederum einen Zeileenbumbruch ausgibt und den cout -Puffer leert. [/quote]</p>
<p>Das bedeutet, dass sobald ein Fehlerauftritt und das Failbit gesetzt wird, wird das Programm nicht beendet wird, sondern einfach die While-Schleife verlässt.</p>
<p>cya<br />
David</p>
<p>PS: Das Buch muss also unrecht haben? -.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362570</guid><dc:creator><![CDATA[David777]]></dc:creator><pubDate>Mon, 10 Sep 2007 13:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 13:19:27 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wie wärs, wen Du das Programm einfach aus einer <em>bestehenden Konsole</em> heraus aufrufst ?</p>
<p>Mich wundert's immer wieder, dass hier seitenlang darüber diskutiert wird, wo das Problem doch eigentlich mit der Sprache gar nichts zu tun hat. Dasselbe passiert einem doch auch, wenn man jedes beliebige Skript &quot;per Doppelclick ausführt&quot;...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362589</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 10 Sep 2007 13:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 14:45:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22930">@David</a>: hast du primer, den wo so ein malwerkzeug mit ner hand oben is(VIERTE AUFLAGE)?</p>
<p>welche seite?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362641</guid><dc:creator><![CDATA[XYZY]]></dc:creator><pubDate>Mon, 10 Sep 2007 14:45:38 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Mon, 10 Sep 2007 15:01:13 GMT]]></title><description><![CDATA[<p>Ehm um das mal aufn Punkt zu bringen:</p>
<blockquote>
<p>C++ Primer schrieb:</p>
<blockquote>
<p>Bis wir auf EOF oder einen anderen Eingabestring stoßen, klappt der Test und der Rumpf der while-Anweisung wird ausgeführt. Dieser besteht aus einer einzigen Anweisung, die den zusammengesetzten Zuweisungsoperator benutzt. Der Operator addiert seinen rechten Operanden zum linken.</p>
<p>Sobald der Test fehlschlägt, wird die while-Schleife beendet und wir führen die darauf folgenden Anweisungen aus. Sie gibt Sum und danach endl aus, was wiederum einen Zeilenumbruch ausgibt und den cout -Puffer leert.</p>
</blockquote>
<p>Das bedeutet, dass sobald ein Fehlerauftritt und das Failbit gesetzt wird, wird das Programm nicht beendet wird, sondern einfach die While-Schleife verlässt.</p>
</blockquote>
<p>Also. Das stimmt auch was dort steht. Allerdings ist deine Schlussfolgerung falsch. Du verlässt dein Programm ab dem Moment, in dem du die main-Funktion verlässt(return xyz;). Die Windows-Konsole bleibt allerdings nur solange geöffnet, wie das Programm läuft. Um das zu umgehen geht man hin und wartet am Ende seines Programmes einfach auf eine Eingabe des Benutzers(man kann auch std::cout &lt;&lt; &quot;Bitte eine Taste druecken&quot; &lt;&lt; std::endl; noch vor die std::cin.get();-Zeile setzen).<br />
Nun wird aber, wie auch in deinem &quot;C++-Primer&quot; korrekt beschrieben, die while-Schleife verlassen, sobald eine Eingabe nicht in int(oder dem entsprechenden Zieltypen) gepackt werden kann. Die while-Schleife wird verlassen, da der operator void* des std::cin-Streams NULL zurückgibt. Dies passiert dann, wenn das failbit(oder ein anderes der Bits, die Fehler indizieren) gesetzt ist.<br />
Damit du std::cin-Stream wieder nutzen kannst, musst du die falsche Eingabe aus dem Stream-Buffer schmeißen (std::cin.ignore(...)) und die failbits zurücksetzten(std::cin.clear()).</p>
<p>Jetzt verstanden? <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/1362650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362650</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 10 Sep 2007 15:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Tue, 11 Sep 2007 06:24:01 GMT]]></title><description><![CDATA[<p>Ich habe Primer.<br />
Seite 40 <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="🙂"
    /> Und die Hand mit dem Maler ist auch drauf <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 />
Ist auch die Vierte Auflage x.x.</p>
<p>Verstanden habe ich das, was (D)Evil sagt, aber warum wird dann im Buch, was ja für Anfänger gedacht ist nicht darauf hingewiesen?<br />
Oder liegt es vielleicht wirklich einfach am Compiler.<br />
Ich benutze keinen GCC-Compiler sondern Dev-C++.</p>
<p>bye<br />
David</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362970</guid><dc:creator><![CDATA[David777]]></dc:creator><pubDate>Tue, 11 Sep 2007 06:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Tue, 11 Sep 2007 07:49:38 GMT]]></title><description><![CDATA[<p>David777 schrieb:</p>
<blockquote>
<p>...aber warum wird dann im Buch, was ja für Anfänger gedacht ist nicht darauf hingewiesen?...</p>
</blockquote>
<p>Das kann mehrere Gründe haben:<br />
1. Sind die Schreiber in der Regel Menschen die sich schon mit der Materie auskennen, und man übersieht auch wenn man sich viel Mühe gibt durchaus den ein oder anderen Anfängerfehler (Nenn es von mir aus Scheuklappen, und mancher ist mehr der andere weniger vor gefeilt).<br />
2. Ich nehme mal an, das wenn man wirklich auf jeden möglichen Anfängerfehler eingeht, der C++ Primer mindestens doppelt bis dreimal so dick wäre.</p>
<p>Ein Buch hat leider nicht die Möglichkeiten wie ein Dozent: Du kannst nur schlecht Rückfragen halten.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363019</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 11 Sep 2007 07:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Programm läuft nich so, wie es soll on Tue, 11 Sep 2007 12:06:26 GMT]]></title><description><![CDATA[<blockquote>
<p>Ein Buch hat leider nicht die Möglichkeiten wie ein Dozent: Du kannst nur schlecht Rückfragen halten.</p>
</blockquote>
<p>Ja. Ich denk da hast du irgendwo Recht <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="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <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="😉"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <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="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <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="😉"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1363237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363237</guid><dc:creator><![CDATA[David777]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:06:26 GMT</pubDate></item></channel></rss>