<?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[Tastatur ausstellen &#x2F;&#x2F; if-Anweisung]]></title><description><![CDATA[<p>Hallo,<br />
ich habe 2 kleine Fragen.<br />
1. Wie kann ich die Eingabe von Buchstaben und Sonderzeichen verhindern (ausstellen?) ?</p>
<p>2. Warum geht ein meinem kleinen Programm die if-Anweisung nicht mit char?</p>
<pre><code class="language-cpp">#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;time.h&gt;

int berechnung(int,int,int);

int main()
{
//ZAHLEN RATEN

   int zufallszahl, ratezahl=0, versuche=1;
   char wahl;

   printf(&quot;Zahlen raten&quot;);
   printf(&quot;\n===========&quot;);
   printf(&quot;\n\nErraten Sie die Zahl zwischen 1 und 100&quot;);
   berechnung(zufallszahl, ratezahl, versuche);
   printf(&quot;\nSpiel vorbei&quot;);
   printf(&quot;\nNochmal? J/N: &quot;);
   scanf(&quot;%c&quot;, &amp;wahl);

     if (wahl=='j' || wahl=='J')
     {
         berechnung(zufallszahl, ratezahl, versuche);
     }         

     system(&quot;PAUSE&quot;);
} 
int berechnung (int zufallszahl, int ratezahl=0, int versuche=1)
{
//Erstellen einer Zufallszahl
   srand(time(NULL));
   zufallszahl=rand()%100+1;

  do
    {
     printf(&quot;\n\n%i. von 10 Versuchen&quot;, versuche);
     printf(&quot;\nBitte eine Zahl eingeben: &quot;);
     scanf(&quot;%i&quot;, &amp;ratezahl);

     if (zufallszahl &lt; ratezahl)
      {
                printf(&quot;Die gesuchte Zahl ist kleiner&quot;);             
                    versuche++;
      }
        else if (zufallszahl &gt; ratezahl)
      {
                printf(&quot;Die gesuchte Zahl ist groesser&quot;);
                    versuche++;

      }      

        else if  (zufallszahl = ratezahl)
      {
                printf(&quot;RICHTIG&quot;);

      }

   }
while(versuche &lt; 11 &amp;&amp; zufallszahl!=ratezahl);
if (ratezahl != zufallszahl)
     {
                  printf(&quot;\n\nSchade, denn sie lautet: %i&quot;,zufallszahl);
     }

}
</code></pre>
<p>Ist ein einfaches Programm und wenn ich bei &quot;Nochmal?&quot; anstatt char - einen INT Wert einbinde, funktioniert alles wunderbar. Wenn nicht, springt er sofort zu SYSTEM(&quot;PAUSE&quot;). Was mach ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142266/tastatur-ausstellen-if-anweisung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 20:18:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142266.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Mar 2006 06:45:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 06:45:26 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe 2 kleine Fragen.<br />
1. Wie kann ich die Eingabe von Buchstaben und Sonderzeichen verhindern (ausstellen?) ?</p>
<p>2. Warum geht ein meinem kleinen Programm die if-Anweisung nicht mit char?</p>
<pre><code class="language-cpp">#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;time.h&gt;

int berechnung(int,int,int);

int main()
{
//ZAHLEN RATEN

   int zufallszahl, ratezahl=0, versuche=1;
   char wahl;

   printf(&quot;Zahlen raten&quot;);
   printf(&quot;\n===========&quot;);
   printf(&quot;\n\nErraten Sie die Zahl zwischen 1 und 100&quot;);
   berechnung(zufallszahl, ratezahl, versuche);
   printf(&quot;\nSpiel vorbei&quot;);
   printf(&quot;\nNochmal? J/N: &quot;);
   scanf(&quot;%c&quot;, &amp;wahl);

     if (wahl=='j' || wahl=='J')
     {
         berechnung(zufallszahl, ratezahl, versuche);
     }         

     system(&quot;PAUSE&quot;);
} 
int berechnung (int zufallszahl, int ratezahl=0, int versuche=1)
{
//Erstellen einer Zufallszahl
   srand(time(NULL));
   zufallszahl=rand()%100+1;

  do
    {
     printf(&quot;\n\n%i. von 10 Versuchen&quot;, versuche);
     printf(&quot;\nBitte eine Zahl eingeben: &quot;);
     scanf(&quot;%i&quot;, &amp;ratezahl);

     if (zufallszahl &lt; ratezahl)
      {
                printf(&quot;Die gesuchte Zahl ist kleiner&quot;);             
                    versuche++;
      }
        else if (zufallszahl &gt; ratezahl)
      {
                printf(&quot;Die gesuchte Zahl ist groesser&quot;);
                    versuche++;

      }      

        else if  (zufallszahl = ratezahl)
      {
                printf(&quot;RICHTIG&quot;);

      }

   }
while(versuche &lt; 11 &amp;&amp; zufallszahl!=ratezahl);
if (ratezahl != zufallszahl)
     {
                  printf(&quot;\n\nSchade, denn sie lautet: %i&quot;,zufallszahl);
     }

}
</code></pre>
<p>Ist ein einfaches Programm und wenn ich bei &quot;Nochmal?&quot; anstatt char - einen INT Wert einbinde, funktioniert alles wunderbar. Wenn nicht, springt er sofort zu SYSTEM(&quot;PAUSE&quot;). Was mach ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026089</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 06:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 07:01:35 GMT]]></title><description><![CDATA[<p>@1: Was genau willst du erreichen? Du könntest höchstens überprüfen, was ankommt und falsche Eingaben mit einer Fehlermeldung quittieren (oder ignorieren) - es gibt bestimmt auch systemspezifische Funktionen, die ohne Bildschirmecho einlesen.</p>
<p>@2: Ich vermute mal, daß du dort noch ein '\n' im Tastaturpuffer hast (vom letzten scanf() in der berechnung()) - den mußt du zunächst auslesen und kompostieren, weil er sonst von deinem scanf() abgefangen wird (und '\n' erfüllt definitiv nicht deine if()-Bedingung ;))</p>
<p>PS: Ich sehe den Sinn nicht ganz, warum du die Arbeitsvariablen deiner Funktion als Parameter anforderst - da reichen lokale Variablen völlig:</p>
<pre><code class="language-cpp">void berechnung()
{
  int zufallszahl=rand()%100+1;
  int ratezahl;
  int versuche=1;
  ...
}
</code></pre>
<p>PPS: Und eventuell wäre eine Schleife (&quot;do...while(toupper(wahl)=='J');&quot;) hilfreicher als dein if() am Ende, vor allem wenn der Spieler noch eine dritte Zahl erraten will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026096</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Mar 2006 07:01:35 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 07:43:44 GMT]]></title><description><![CDATA[<p>ich bin anfänger und hab das sozusagen übernommen, also das umgesetzt was im buch stand,<br />
aber vielen dank, ich ändere es mal so ab</p>
<p>EDiT: okay also bei einer &quot;nicht-zahl-eingabe&quot; kommt denn eine fehlermeldung...mach ich <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 />
ich dachte aber daran den benutzer gar nicht erst die möglichkeit zu geben, quasi ein pc auf dem man kein windows installieren kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026136</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 07:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 08:47:49 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">printf(&quot;\n\n%i. von 10 Versuchen&quot;, versuche);

printf(&quot;\nBitte eine Zahl eingeben: &quot;);

printf(&quot;\n\nSchade, denn sie lautet: %i&quot;,zufallszahl);
</code></pre>
<p>Ich verstehe das mit dem Tastaturpuffer noch nicht. Wenn dort &quot;\n&quot; steht, soll er in die nächste Zeile gehen, wegen der Optik..macht er ja auch, warum nimmt das Programm denn diesen Wert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026207</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 08:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 08:54:25 GMT]]></title><description><![CDATA[<p>Der Tastaturpuffer hat mit den printf() nichts zu tun (dort steht \n für ein newline = Zeilenwechsel) - da geht es um deine Eingaben (scanf()).</p>
<p>PS: Irgendwo in der FAQ findet sich auch ein Beitrag, wie du den Puffer entleeren kannst.</p>
<p>PPS: Sicher gibt es Möglichkeiten, die Tastatur teilweise abzuschalten. Aber dazu müsstest du extrem tief ins System eingreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026210</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Mar 2006 08:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 09:17:58 GMT]]></title><description><![CDATA[<p>vielen dank, es läuft alles wunderbar..und jetz ein betriebssystem <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/1026227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026227</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 09:17:58 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 11:56:09 GMT]]></title><description><![CDATA[<p>hi <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 />
hab ein neues Problem.<br />
Ich kann das umgemodelte Programm nicht ausführen und ich weiß nicht woran es liegt. Die Fehlermeldung hilft mir nicht all zu viel weiter.</p>
<pre><code class="language-cpp">#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;time.h&gt;

int vergleich();
int rat();
int zahlenbereich();

int rat()
 {

    printf(&quot;\n\nErraten Sie die Zahl zwischen 1 und 100&quot;);
    vergleich();
    printf(&quot;\nSpiel vorbei&quot;);

 }

int zahlenbereich()
 {
    int start, ende;
    int differenz;                  
 do
 {

    printf(&quot;\nStart und Endpunkt müssen mindestens eine Differenz von 10 aufweisen!&quot;);
    printf(&quot;\nGeben Sie einen Startpunkt ein: &quot;);
    scanf(&quot;%i&quot;, &amp;start);
    printf(&quot;\nGeben Sie einen Endpunkt ein: &quot;);
    scanf(&quot;%i&quot;, &amp;ende);
    printf(&quot;Start %i, Ende %i&quot;, start, ende);
    differenz = ende - start;
 }
 while(differenz &lt; '10'); 
 vergleich();
 }

 int vergleich ()
{
    int zufallszahl;
    int ratezahl=0;
    int versuche=1;         
    int start, ende;
//Erstellen einer Zufallszahl
   srand(start);
   zufallszahl=rand()%ende+1;

  do
    {
     printf(&quot;\n\n%i. von 10 Versuchen&quot;, versuche);
     printf(&quot;\nBitte eine Zahl eingeben: &quot;);
     scanf(&quot;%i&quot;, &amp;ratezahl);

     if (zufallszahl &lt; ratezahl)
      {
                printf(&quot;Die gesuchte Zahl ist kleiner&quot;);             
                    versuche++;
      }
        else if (zufallszahl &gt; ratezahl)
      {
                printf(&quot;Die gesuchte Zahl ist groesser&quot;);
                    versuche++;

      }      

        else if  (zufallszahl = ratezahl)
      {
                printf(&quot;RICHTIG&quot;);

      }

    fflush(stdin);
   }
    while(versuche &lt; 11 &amp;&amp; zufallszahl!=ratezahl);
    if (ratezahl != zufallszahl)
     {
                  printf(&quot;\n\nSchade, denn sie lautet: %i&quot;,zufallszahl);
     }

}

int main()

{

//ZAHLEN RATEN

   char wahl;

   printf(&quot;Zahlen raten&quot;);
   printf(&quot;\n===========&quot;);

 do      
 {
   fflush(stdin);
   rat();
   printf(&quot;\nNochmal? J/N: &quot;);
   scanf(&quot;%c&quot;, &amp;wahl);
 }
    while (wahl == 'j' || wahl== 'J');    
     system(&quot;PAUSE&quot;);

}
</code></pre>
<blockquote>
<p>[Warning] multi-character character constant<br />
In function <code>Z3ratv': \[Linker error\] undefined reference to</code>vergleich()'<br />
In function <code>Z13zahlenbereichv': \[Linker error\] undefined reference to</code>vergleich()'<br />
ld returned 1 exit status</p>
</blockquote>
<p>kann mir bitte einer sagen, was ich ändern muss?<br />
danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026393</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 11:56:09 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 11:57:11 GMT]]></title><description><![CDATA[<p>alles klar, hab den fehler, jetzt stürzt das programm nur noch ab^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026397</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 11:57:11 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 12:47:17 GMT]]></title><description><![CDATA[<p>die zufallszahl liegt nicht zwischen dem vom anwender festgelegten bereich, liegt das am mudolo? ich weiß echt nich weiter</p>
<pre><code class="language-cpp">do
 {

    printf(&quot;\nStart und Endpunkt muessen mindestens eine Differenz von 10 aufweisen!&quot;);
    printf(&quot;\nGeben Sie einen Startpunkt ein: &quot;);
    scanf(&quot;%i&quot;, &amp;start);
    printf(&quot;\nGeben Sie einen Endpunkt ein: &quot;);
    scanf(&quot;%i&quot;, &amp;ende);
    differenz = ende - start;
 }
 while(differenz &lt; 10); 

//Erstellen einer Zufallszahl
   srand(start);
   zufallszahl=rand()%ende+1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1026453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026453</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 12:47:17 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 13:00:00 GMT]]></title><description><![CDATA[<p>Erstens solltest du srand() nur einmal am Anfang aufrufen (und dann normalerweise nicht mit einem festen Wert). und zweitens liefert &quot;rand()%x&quot; einen Wert im Bereich 0..x-1 - da mußt du die richtigen Grenzwerte einsetzen:</p>
<pre><code class="language-cpp">zahl=rand()%(ende-start+1)+start;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1026464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026464</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Mar 2006 13:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Wed, 29 Mar 2006 13:53:59 GMT]]></title><description><![CDATA[<p>genial, es geht<br />
aber könntest du es mir eventuell noch erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026515</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Wed, 29 Mar 2006 13:53:59 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Thu, 30 Mar 2006 06:29:04 GMT]]></title><description><![CDATA[<p>rand() liefert eine Zufallszahl im Bereich 0 bis RAND_MAX (das ist eine Konstante im sehr hohen int-Bereich, die vom System vorgegeben wird), mit dem Modulo wird das auf den Bereich 0 bis n-1 beschränkt - und anschließend in die richtige Position angehoben:</p>
<pre><code>rand()            0..RAND_MAX
rand()%(e-s+1)    0..(e-s)
rand()%(e-s+1)+s  s..e
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1026900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026900</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 30 Mar 2006 06:29:04 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur ausstellen &#x2F;&#x2F; if-Anweisung on Thu, 30 Mar 2006 08:01:56 GMT]]></title><description><![CDATA[<p>alles klar, danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026936</guid><dc:creator><![CDATA[C.Ulmen]]></dc:creator><pubDate>Thu, 30 Mar 2006 08:01:56 GMT</pubDate></item></channel></rss>