# Eclipse MinGW - scanf wird immer vor printf ausgeführt



## Joggal (4. Mai 2015)

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:


```
#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:

```
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


----------



## Thallius (5. Mai 2015)

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


----------



## Joggal (6. Mai 2015)

Hallo und danke für die Antwort!

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

lg


----------

