tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von sheel
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
143
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    Hallo zusammen,
    ich hab ein ziemlich triviales Problem, trotzdem fällt mir spontan keine Lösung ein. Ich arbeite mit c++ unter windows und hab ein main Thread in dem 2 weitere Threads gestartet werden. Der eine von den beiden Threads soll die Anzeige in de Konsole spielen. Leider gibt er mir nach dem Start nur einmal die daten raus und der Rest wird gepuffert, so dass ich erst nach dem beenden des Programms was sehen kann. Und das ist mir eindeutig zu spät.
    ich benutze die ganze Zeit das Befehl cout für die Ausgabe. Kann mir vielleicht jemand was besseres empfehlen?
    Vielen Dank im voraus.

    Grüße July
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    es werden also zusätzlich zum Main 2 Threads gestartet, also insgesamt drei?
    Wird im main gleichzeitig auch was ausgegeben?

    Was passiert, wenn du statt cout printf nimmst?
    july bedankt sich. 

  3. #3
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    Zitat Zitat von sheel Beitrag anzeigen
    Hi

    es werden also zusätzlich zum Main 2 Threads gestartet, also insgesamt drei?
    Wird im main gleichzeitig auch was ausgegeben?
    genau, es werden insgesamt 3 Threads gstartet, die Ausgaben aus den beiden anderen threads hab ich mit Hilfe von cerr in eine Datei umgelenkt.

    Was passiert, wenn du statt cout printf nimmst?
    werd gleich probieren.
     

  4. #4
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von july Beitrag anzeigen
    Leider gibt er mir nach dem Start nur einmal die daten raus und der Rest wird gepuffert, so dass ich erst nach dem beenden des Programms was sehen kann. Und das ist mir eindeutig zu spät.
    Wie sehen denn die cout-Befehle aus? Auf jeden Fall sollten die Texte in die Konsole geschrieben werden, wenn die Ausgabe mit std::endl abgeschlossen wird.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  5. #5
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    Zitat Zitat von MCoder Beitrag anzeigen
    Wie sehen denn die cout-Befehle aus? Auf jeden Fall sollten die Texte in die Konsole geschrieben werden, wenn die Ausgabe mit std::endl abgeschlossen wird.
    Das sind sie alle.Darum wundert's mich, dass es nicht geht...

    @sheel
    Hab gerade mit printf() ausprobiert, es funktionniert sobald ich fflush(stdin) benutze.
     

  6. #6
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    stdin hat aber nichts mit Ausgabe zu tun

    Außerdem sollte man fflush nicht auf Eingabestreams anwenden.

    Zeig einmal das Programm (relevante Teile), bzw.ein Beispiel mit den Threads.
    Geändert von sheel (29.08.11 um 12:17 Uhr)
     

  7. #7
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Hallo,

    Wenn du den cout-Stream flushen willst kannst du ein std::flush an den Stream schicken.
     

  8. #8
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von july Beitrag anzeigen
    Das sind sie alle.Darum wundert's mich, dass es nicht geht...
    Finde ich auch sehr seltsam. Wie lastet denn der Thread die CPU aus?

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 16.08.09, 22:31
  2. SQL - Query Ausgabe gibt mehrere Zeile aus -> Ausgabe soll nur 1 Zeile zurück geben
    Von Briefkasten im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 26.01.07, 12:10
  3. Thread A stösst Änderung in Thread B an. Aber wie?
    Von BeaTBoxX im Forum .NET Café
    Antworten: 12
    Letzter Beitrag: 13.12.06, 11:52
  4. vb6 Thread
    Von Peter Parker im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 12.05.05, 11:15
  5. Antworten: 19
    Letzter Beitrag: 12.07.02, 11:13

Stichworte