streams



  • Hellas,

    mein Programm kann von der Konsole mit einigen Optionen gestartet
    werden. Optional kann eine Ausgabedatei angegeben werden, in welche das
    Programmergebnis hineingeschrieben wird, ansonsten wird das auf der Standardausgabe ausgegeben.
    Da das recht viel Code ist und ich den nicht unnötig duplizieren möchte,
    wollte ich mal hören, wie man das geschickt mit den Strömen machen kann.
    In die Datei schreiben geschieht ja per ofstream, auf die Standardausgabe
    schreiben per cout.
    kann mir einer helfen??



  • #include <fstream>
    #include <iostream>
    
    void foo(std::ostream& os)
    {
        os << "Hello world!";
    }
    
    int main()
    {
        std::ofstream test("test.text");
        foo(test);
        foo(std::cout);
    }
    

    edit: Aber darum brauchst Du Dich eigentlich gar nicht kümmern, gibt ja Pipes...
    edit2: Grr, wiedermal zu langsam! 🙂

    [ Dieser Beitrag wurde am 26.05.2003 um 16:37 Uhr von nman editiert. ]



  • Du könntest eine Methode schreiben die ein ostream erwartet und dieser das ofstream oder das cout übergeben (bin mir nicht sicher).

    P.s.: Unter vielen Betriebssystemen kannst Du mittels > in eine Datei umleiten.

    Programmxyz >Programmausgabe.txt



  • Aber darum brauchst Du Dich eigentlich gar nicht kümmern, gibt ja Pipes...

    Aber die brauchen erstmal eine Shell. Von daher ist es schon gut, wenn man die Möglichkeit gibt, auch eine Datei anzugeben.



  • HI
    glaube das ist einfacher

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main()
    {
        fstream file("Test.txt",ios::out);  // File Stream
        cout.rdbuf(file.rdbuf());       // Umlenken
    
        // Ausgabe tätigen
        cout << "Das ist aus FAQ"<< endl;   
    
        return 0;
    }
    

    Also: wenn du in datei schreiben willst dann fürst du die Codzeile mit dem Umlenken aus dann wird alles was auf cout geschrieben wird nach file umgelenkt

    Mfg
    Cryptoman



  • Man könnte doch auch ne Funktion schreiben.



  • Original erstellt von Spieleprogrammierer:
    Man könnte doch auch ne Funktion schreiben.

    Ich wiederhole an dieser Stelle meine Bitte nicht hier herumzutrollen sondern nur in diesem Teil des Forums.


Anmelden zum Antworten