Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

1

10.01.2007, 18:34

Ausgabe auf dem Bildschirm UND in Datei?

Ich schreibe grad einen kleinen Server vor mich hin. Dieser soll Plattformunabhängig sein, spezielle Win Funktionen kommen also nicht in Frage. Mein Problem ist allerdings viel grundlegender und wohl nur in mangelndem STL Wissen zu suchen ^^

Ich suche eine Möglichkeit die Bildschirmausgabe, welche momentan über std::cout läuft, gleichzeitig in eine Datei umzulenken. Wer sich mal mit Linux befasst hat wird schon genau wissen was ich meine ^^

Natürlich könnte ich mir da was eigenes zusammenschreiben, aber ich vermute fast das die STL diese Möglichkeit irgendwo versteckt bietet ^^

2

10.01.2007, 18:58

was ist mit den std::ifstream std::ofstream ? in fstream.h ... dann schreib dir am besten ne Funktion die dir halt direkt std::ofstream und std::cout zs. aufruft...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

3

10.01.2007, 19:20

So würde ich das auch selber machen, scheint mir nur so ... merkwürdig? Irgendwie wie eine Bastellösung ^^ Und ich will nicht (schon wieder ...) Dinge zusammenstückeln die ich mit der STL viel leichter erreichen kann *g*

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

10.01.2007, 19:30

Also ich würde das ganz anders machen. Du kannst immer nur ein stdout haben - das is immer so. Pipelineing kannst du ohne eine Shell nicht.

Was ich machen würde wäre ne Klasse (Output oder so), die den ostream nimmt und ihn ins stdout, und in die Datei schreibt. Könnteste ja als Singleton machen... . Ich glaub nicht das das in der STL ist, den sowas wäre viel zu speziefisch (Container findest du in der STL) - ausserdem darf es wie gesagt immer nur ein stdout geben.
Als Alternative könntest du stderr natürlich noch missbrauchen, aber das ist ganz böse ^^.



p.s. die Lsg ist für Datei und stdout gleichzeitig, willst du stdout umlenken oder gleichzeitig in zwei Ausgabepuffer schreiben?

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

5

10.01.2007, 19:36

Ich merke immer mehr wie doof die Frage war, klar ist sowas Systemabhängig -_-

Im Prinzip will ich das bekannte Linux System "nachbauen". Bildschirmausgabe erfolgt in einem Logfile UND (sofern aktiv) auf dem Bildschirm.

Schätze aber ich fahre mit ner Erweiterung meine Logfileklasse besser ... Irgendwie waren grad meine faulen fünf Minute, siehe MD5 Thread xD

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

6

10.01.2007, 19:38

Ich hab gerade oben noch was editiert....

ähm Linux kann das... ähm weiss ich gar ned. Aber Unix kann es jedenfalls nicht. Du kannst immer nur stdout umlenken, d.h. du hast immer nur ein stdout nicht mehrere.

Aber was ist den an der klasse "Output" so schlimm? Die funzt auch auf linux, wenn des richtig machst ^^.

Das Gurke

Community-Fossil

  • »Das Gurke« ist der Autor dieses Themas

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

7

10.01.2007, 19:52

Hmm, also ich benutze Gentoo und kann dort wie es wohl einige kennen Ausgaben mit >> umlenken. Allerdings krieg ich dann in der Shell immer noch output wenn ich nicht ausdrücklich nach dem Silentmode verlange.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

10.01.2007, 19:55

... umlenken kannst du immer. (geht hier auch)

du willst ja aber stdout, gleichzeitig in 2 Puffer schrieben.

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

10

11.01.2007, 12:39

Also, das Shell-Kommando unter LINUX/UNIX wäre "tee". Aber das ist ja nicht unbedingt das, was du machen willst. Liest von stdin und schreibt sowohl in eine Datei als auch nach stdout wieder raus.

Zitat

shell# ls | tee ls.txt | less


Wenn du es selbst programmierst (unter Windows gar nicht zu vermeiden), wirst du nicht drumrum kommen, selbst in zwei Ausgabeströme zu schreiben (oder sogar in eine ganze Menge davon). Wie schon erwähnt, lässt sich sowas ganz gut in einer Log-Klasse verkapseln.
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

Werbeanzeige