C IDE für Eclipse. Problem mit scanf-Befehl



  • Hallo,

    ich fange gerade neu an C zu lernen und erlebe direkt meinen ersten Rückschlag.
    Ich habe die C IDE für Eclipse installiert und es klappt alles super. Die Programme werden kompiliert und gestartet.
    Nur bei Eingabeaufforderungen habe ich Probleme. Wenn ich einen printf Befehl habe und danach etwas einlesen möchte wird der printf Befehl erst ausgeführt wenn die Tastatureingaben fertig sind.

    #include <stdio.h>
    
    int main(void) {
    	printf("Zahl eingeben:");
    	int x = 0;
    	scanf ("%d", &x);
    	printf ("%d", x);
    	return 0;
    }
    

    Beim Ausführen bleibt die Konsole leer. Gebe ich eine Zahl ein, spuckt es danach beide printf Befehle aus.
    So kann ich auch komplexere Programme schreiben, die mehrere Variablen einlesen. Aber die Konsole bleibt immer so lange leer bis alle Variablen eingetippt wurden.
    Das gleiche Problem besteht übrigens auch mit getchar.

    Schonmal Vielen Dank

    Jack



  • fflush(stdout);
    

    nach jedem printf hilft.



  • Wobei das dann ein IMHO Bug in Eclipse wäre. stdout ist per default zeilengepuffert - oder irre ich mich da?



  • Vielen Dank, das hat das Problem gelöst. Auch wenn es etwas umständlich ist, für den Anfang geht es. Ich hoffe dass sich das Problem dann mit einem der nächsten Updates von selbst löst.
    Ansonsten werde ich mal versuchen eine alte Eclipse-Version draufzuspielen.

    Edit:
    Unter diesem Stichwort habe ich nach kurzer Suche gefunden dass mein Problem kein Einzelfall ist. Kurz zusammengefasst:
    Anscheinend gibt es keine komplette Lösung dafür. Unkompliziertester weg ist

    setvbuf(stdout, NULL, _IONBF, 0);
    

    einmal an den Codeanfang zu schreiben. Funktioniert bei mir einwandfrei.

    Quelle: https://www.c-plusplus.net/forum/274767-full


Anmelden zum Antworten