Einfache printf will nicht



  • Hallo,
    ich habe folgendes Problem...
    Ich lese eine Datei aus und will diese dort drin stehende Temperatur mit printf ausgeben..

    printf("Device: %s  - ", dev); 
    		printf("Temp: %.3f C  \n", tempC / 1000);
    		temp[0] = (tempC / 1000);
    		printf("%.3f C",temp[0]);
    

    der kommt nur zum 2ten printf.. weiter nicht.. es liegt aber nicht an dem Array, habe es auch schon mit einem einfachen prinft("TEST") getestet..

    was ich noch habe ist eine Socket..

    den Code oben habe ich aber ganz am Anfang meines Programm gesetzt...

    wenn ich mich nun mit einem Client verbinde und ihm was schicke.. DANN kommt erst das letzte printf... warum?



  • Könntest du deine Postings vor dem Abschicken nochmal auf Logik checken? Das letzte printf wird doch ausgegeben, wieso behauptest du, weiter käme das Programm nicht?

    Der Grund dürfte sein, dass Ausgaben grundsätzlich gepuffert sind. Wenn du in eine Datei schreibst, wird die Ausgabe erst tatsächlich durchgeführt, wenn der Puffer voll ist. Beim Ausgeben auf den Bildschirm wird immerhin nach jedem Zeilenumbruch tatsächlich geschrieben. Dein letztes printf hat aber kein \n, also bleibt die Ausgabe so lange im Puffer liegen.

    [Das sind so ungefähr die Defaults. Das hängt von diversen Sachen ab und kann auch verändert werden, aber darum geht es dir vermutlich im Moment nicht.]

    Wenn du eine "halbe" Zeile ausgeben willst, musst du den Puffer manuell zur Ausgabe zwingen:

    printf("halbe ...");
    fflush(stdout); // jetzt Ausgabe
    // Pause ....
    printf("... Zeile\n"); // Rest erst jetzt
    


  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum C (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten