BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C Habe eine frage was dieser Code bewirkt » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Habe eine frage was dieser Code bewirkt
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
time-walker time-walker ist männlich
Junior Member


images/avatars/avatar-153.gif

Dabei seit: 01.02.2003
Beiträge: 167
Herkunft: Osnabrooklin

Habe eine frage was dieser Code bewirkt       Zum Anfang der Seite springen

Hi,
ich arbeite gerade das online buch "C von A bis Z"
durch auf ww.pronix.de

bin gerade bei do-while schleifen

dann stand da ne beispiel :

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
#include <stdio.h>

int main()
{
   char response;
   printf("Denk Dir eine Nummer zwischen 1 und 100 aus.\n");
   printf("Das errate ich in 7 oder weniger Versuchen \n\n");
   do
      {
         int lo = 1, hi = 100;
         int guess;
         while (lo <= hi)
            {
               guess = (lo + hi) / 2;
               printf("Ist es %d ",guess);
               printf(" ((h)oeher/(n)iedriger/(j)a): ");
               fflush(stdout);
               scanf("%c%*c",&response);

               if (response == 'h')
                  lo = guess + 1;
               else if (response == 'n')
                  hi = guess - 1;
               else if (response != 'j')
                  printf("Erraten ... :)");
               else
                  break;
            }
         /* Resultat ausgeben */
         if (lo > hi)
            printf("Du schummelst!\n");
         else
            printf("Deine Nummer lautet: %d\n",guess);
         printf("Noch ein Spiel (j)a/nein : ");
         fflush(stdout);
         scanf("%c%*c",&response);
      }while(response == 'j');
   return 0;
}


Hab ne frage zu zwei zeilen, weil da keine erklärung stand.
oder vielleicht hab ich es auch übersehen.

code:
1:
2:
3:
printf("Noch ein Spiel (j)a/nein : ");
         fflush(stdout);
         scanf("%c%*c",&response);

ich versteh nicht wofür das fflsuh(stdout)
ich weiss nur das fflush(stdin) den Tastaturen buffer leert.
was soll denn stdout leeren ??

und wieso is der der zeile "scanf("%c%*c",&response);"
das "%*c" da ?
bei dem zeichen "%c" wartet auf einzeichen das man eingeben soll.
in diesem fall j oder nein.

__________________
Wissen ist macht


Dc_donald--->Time-walker

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von time-walker: 29.10.2004 09:24.

29.10.2004 09:23 time-walker ist offline E-Mail an time-walker senden Beiträge von time-walker suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

fflush(stdout) löscht den Ausgabepuffer.

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
29.10.2004 09:34 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
time-walker time-walker ist männlich
Junior Member


images/avatars/avatar-153.gif

Dabei seit: 01.02.2003
Beiträge: 167
Herkunft: Osnabrooklin

Themenstarter Thema begonnen von time-walker
      Zum Anfang der Seite springen

und was bringt das ??

__________________
Wissen ist macht


Dc_donald--->Time-walker
29.10.2004 14:35 time-walker ist offline E-Mail an time-walker senden Beiträge von time-walker suchen
COCYHOK COCYHOK ist männlich
Verunsicherungsmakler


images/avatars/avatar-2037.png

Dabei seit: 04.10.2003
Beiträge: 1.079
Herkunft: CCCP

      Zum Anfang der Seite springen

Löscht den Ausgabepuffer würd ich so nicht sagen. Es schreibt die noch ungeschriebenen Daten in die Datei (in dem Fall auf den Bildschirm) und verschiebt damit die Daten aus dem Puffer in den Bildschirmspeicher.
Mal ne Frage meinerseits: ist fflush(stdout) nicht nur dann nötig, wenn man auch statt printf("Moin!") fprintf(stdout,"Moin!") schreibt?

__________________
Es ist eine Frage, ob wir nicht, wenn wir einen Mörder rädern, grade in den Fehler des Kindes verfallen, das den Stuhl schlägt, an dem es sich stößt.
Georg Christoph Lichtenberg, 18. Jahrhundert
30.10.2004 01:00 COCYHOK ist offline E-Mail an COCYHOK senden Homepage von COCYHOK Beiträge von COCYHOK suchen
time-walker time-walker ist männlich
Junior Member


images/avatars/avatar-153.gif

Dabei seit: 01.02.2003
Beiträge: 167
Herkunft: Osnabrooklin

Themenstarter Thema begonnen von time-walker
      Zum Anfang der Seite springen

hab dem Autor ne mail geschrieben.

der sagt das das fflush(stdout) da fehl am platze sei.

und mit %*c ist beabsichtigt, dass das Newline-Zeichen, welches sich noch immer Puffer befindet, ignoriert wird (eine Art Platzhalter).

__________________
Wissen ist macht


Dc_donald--->Time-walker
30.10.2004 16:00 time-walker ist offline E-Mail an time-walker senden Beiträge von time-walker suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C Habe eine frage was dieser Code bewirkt

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH