Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
oli_f
- Beiträge: 272
- Registriert: 24.10.2003 12:27:05
Beitrag
von oli_f » 06.01.2005 21:43:13
In einem C++ Programm habe ich folgenden Code in main()
Code: Alles auswählen
for ( int x = 0; x < size; x++ )
{
for ( int y = 0; y < size; y++ )
cout << board.run( x, y );
cout << endl;
}
das funktioniert eigentlich bestens nur leider werden die einzelnen Resultate von board.run() nur Zeilenweise ausgegeben also erst beim endl.
das stört mich aber da die einzelnen schritte sehr lange dauern!
kann ich das irgendwie ändern, dass die Werte gleich angezeigt werden?
error - divided by 0
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 06.01.2005 21:58:17
du kannst einmal versuchen zwischendurch ein "cout.flush();" aufzurufen, ich befürchte aber daß das auch nichts helfen wird.
[edit]
doch, das sollte helfen
[/edit]
-
oli_f
- Beiträge: 272
- Registriert: 24.10.2003 12:27:05
Beitrag
von oli_f » 06.01.2005 22:15:08
wunderbar! es geht, merci.
was macht dieser befehl genau? gibt es da noch einen buffer für die ausgabe und ist das eine eigenart unter linux denn unter win hatte ich nie solche probleme (denke ich).
error - divided by 0
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 06.01.2005 22:22:36
Ja durch flush wird der Buffer geleert (wird auch indirekt von endl aufgerufen). Auch unter Windows wird nicht jedes Zeichen sofort rausgeschrieben, sondern zuerst gebuffert.
-
bollin
- Beiträge: 482
- Registriert: 01.11.2003 23:31:33
- Wohnort: Berlin
-
Kontaktdaten:
Beitrag
von bollin » 07.01.2005 07:03:29
gms hat geschrieben:"cout.flush();"
Oder
, wenn man die merkwürdige Syntax mag.
Viele Grüße,
Torsten
-
peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Beitrag
von peschmae » 07.01.2005 19:17:22
gms hat geschrieben:Ja durch flush wird der Buffer geleert (wird auch indirekt von endl aufgerufen). Auch unter Windows wird nicht jedes Zeichen sofort rausgeschrieben, sondern zuerst gebuffert.
Afaik wird das unter Windows eben gerade sofort geschrieben. So habe ich mir zumindest damals meine Probleme erklärt (ging um Java, ist ne lange Geschichte
).
Kann natürlich sein das ich da nicht recht habe, würde aber mein Weltbild arg durcheinanderbringen *g*
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 07.01.2005 21:05:45
peschmae hat geschrieben:Afaik wird das unter Windows eben gerade sofort geschrieben. So habe ich mir zumindest damals meine Probleme erklärt (ging um Java, ist ne lange Geschichte
).
Zu Java kann ich nicht sehr viel sagen, hier fehlt mir die langjährige Erfahrung. (Mein erstes Java Programm habe ich vor ca. einem Jahr geschreiben.) Die (C++) STL verwende ich jetzt aber schon beinahe 10 Jahre (vorallem unter Windows). Ein solcher Bug wäre mir bestimmt aufgefallen.