Eclipse MinGW - scanf wird immer vor printf ausgeführt

Dieses Thema Eclipse MinGW - scanf wird immer vor printf ausgeführt im Forum "C/C++" wurde erstellt von Joggal, 4. Mai 2015.

Thema: Eclipse MinGW - scanf wird immer vor printf ausgeführt Hallo an alle, Ich habe heute den MinGW C/C++ Compiler und die C/C++ Plugins für Eclipse installiert. Soweit so...

  1. Hallo an alle,

    Ich habe heute den MinGW C/C++ Compiler und die C/C++ Plugins für Eclipse installiert.
    Soweit so gut.. Hello World Prorgamm wird erfolgreich ausgeführt.

    Allerdings musste ich folgendes "Phänomen" feststellen:

    Code (Text):
    #include <stdio.h>

    int main (void) {
       int i;               /* ein ganzzahliger Datentyp */
       printf("Bitte geben Sie eine Zahl ein : ");
       scanf("%d",&i);      /* Wartet auf die Eingabe.    */
       printf("Die Zahl, die Sie eingegeben haben, war %d\n",i);
       return 0;
    }
    Führt zu folgendem Ergebnis:
    Code (Text):
    4
    Bitte geben Sie eine Zahl ein : Die Zahl, die Sie eingegeben haben, war 4
     
    Jedesmal, wenn ich das Programm ausführe, dann kommt der Scanf Befehl VOR dem Printf.

    Weiß hier jemand woraun das liegt?

    lg
     
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. Das liegt daran, das printf erstmal nur in den stdout buffer schreibt aber dieser noch nicht ausgegeben wird. Ausgegeben wird der erst bei einem linefeed "\n". Danach machst du den scanf welcher sich die Zahl aus dem stdin holt. Dieser hat mit dem stdout nichts zu tun. Erst beim zweiten printf hast du einen \n drin und dann wir der stdout ausgegeben.

    Gruß

    Claus
     
  4. Hallo und danke für die Antwort!

    Habe auch nochmal recherchiert und das selbe rausgefunden :D
    Am besten macht man einfach ein fflush(stdout) nach dem printf, damit das auch wirklich alles aus dem Puffer rausgeschrieben wird!

    lg
     
  5. Kostenloses Java-Grundlagen Training im Wert von 39 €
    Schau dir jetzt hier das Tutorial an und starte richtig durch!