<?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[scanf]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe da so nen prob, das programm überspringt immer mein scanf beim 2 durchlauf! hat da einer ne idee??</p>
<p>int eingebeneZahl; // Variable für die Eingebne Zahl deklarieren<br />
int check; // Variable zum überprüfen, ob eingabe richtig ist<br />
int i=0; // Schleifenzähler für Komentare</p>
<pre><code class="language-cpp">int eingebeneZahl;  // Variable für die Eingebne Zahl deklarieren
  int check;          // Variable zum überprüfen, ob eingabe richtig ist
  int i=0;              // Schleifenzähler für Komentare

 do 
 {
    if (i&lt;=2)
    {
       printf(&quot;Bitte geben Sie eine Zahl ein : &quot;);  //Ausgabe, Zahl eingeben
       i++;
    }
    if (i&gt;=3)
    {
       printf(&quot;Was ist so schwer daran ein Zahl einzugeben?\n&quot;);
       printf(&quot;Bitte geben Sie eine Zahl ein : &quot;);  //Ausgabe, Zahl eingeben
    }

    check=scanf(&quot;%d&quot;,&amp;eingebeneZahl);     //Zahl einlesen

    printf(&quot;Check=%d\n\n&quot;,check); //(wird nur zum testen benötigt)

    if (check==1)
       {
          printf (&quot;Die Zahl lautet:%d\n\n&quot;,eingebeneZahl);                                    
       }

 } 
 while(check!=1);
</code></pre>
<p>gruss alex</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/148749/scanf</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 00:47:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/148749.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 May 2006 08:45:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to scanf on Tue, 30 May 2006 08:45:33 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe da so nen prob, das programm überspringt immer mein scanf beim 2 durchlauf! hat da einer ne idee??</p>
<p>int eingebeneZahl; // Variable für die Eingebne Zahl deklarieren<br />
int check; // Variable zum überprüfen, ob eingabe richtig ist<br />
int i=0; // Schleifenzähler für Komentare</p>
<pre><code class="language-cpp">int eingebeneZahl;  // Variable für die Eingebne Zahl deklarieren
  int check;          // Variable zum überprüfen, ob eingabe richtig ist
  int i=0;              // Schleifenzähler für Komentare

 do 
 {
    if (i&lt;=2)
    {
       printf(&quot;Bitte geben Sie eine Zahl ein : &quot;);  //Ausgabe, Zahl eingeben
       i++;
    }
    if (i&gt;=3)
    {
       printf(&quot;Was ist so schwer daran ein Zahl einzugeben?\n&quot;);
       printf(&quot;Bitte geben Sie eine Zahl ein : &quot;);  //Ausgabe, Zahl eingeben
    }

    check=scanf(&quot;%d&quot;,&amp;eingebeneZahl);     //Zahl einlesen

    printf(&quot;Check=%d\n\n&quot;,check); //(wird nur zum testen benötigt)

    if (check==1)
       {
          printf (&quot;Die Zahl lautet:%d\n\n&quot;,eingebeneZahl);                                    
       }

 } 
 while(check!=1);
</code></pre>
<p>gruss alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1067864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1067864</guid><dc:creator><![CDATA[mrat01]]></dc:creator><pubDate>Tue, 30 May 2006 08:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to scanf on Tue, 30 May 2006 08:51:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>das newline-Zeichen ('\n') hängt noch im Puffer, das kannst du mit folgender Funktion rausholen:</p>
<pre><code class="language-cpp">void clearStdin() {
  int c;
  while ((c=getchar()) != '\n' &amp;&amp; c != EOF);
};
</code></pre>
<p>Die rufst du nach deinem scanf auf und schon klappt's.</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1067867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1067867</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Tue, 30 May 2006 08:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to scanf on Tue, 30 May 2006 08:51:55 GMT]]></title><description><![CDATA[<p>Wenn scanf() etwas gesehen hat, was nicht zu seinem Formatstring passt, beendet es sich und bleibt an dieser Stelle im Lesepuffer stehen - d.h. bei der nächsten Eingabe setzt er mit dem ersten Zeichen fort, das er nicht erkannt hat.<br />
(in deinem Fall bedeutet das, mit der ungültigen Eingabe)</p>
<p>Als Lösung müsstest du nach dem Eingabefehler den Tastaturpuffer auskippen, um ordentlich weitermachen zu können:</p>
<pre><code class="language-cpp">if (check==1)
{
  printf (&quot;Die Zahl lautet:%d\n\n&quot;,eingebeneZahl);
}
else
{
  while(getchar()!='\n');//alles lesen und verwerfen bis zum newline
}
</code></pre>
<p>(PS: Übrigens ist das C-Code und gehört eine Etage höher ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1067868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1067868</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 30 May 2006 08:51:55 GMT</pubDate></item><item><title><![CDATA[Reply to scanf on Tue, 30 May 2006 10:18:41 GMT]]></title><description><![CDATA[<p>vielen dank!</p>
<p>damit wäre diese hörde auch geschaft! <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>gruss alex</p>
<p>ps: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>, bei nächsten mal poste ich ne etage höher!!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1067929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1067929</guid><dc:creator><![CDATA[mrat01]]></dc:creator><pubDate>Tue, 30 May 2006 10:18:41 GMT</pubDate></item></channel></rss>