cout's umleiten



  • Hallo zusammen,

    ich leite meine Ausgaben in der Konsole mit

    freopen (log.txt,"w",stdout);
    

    um und dies funktioniert.

    Jedoch möchte ich am ende des Programms wieder eine Zeile in der Konsole ausgeben und müsste es wieder umleiten jedoch kenne ich das Ziel nicht.

    Hat jemand eine Ahnung wie man das wieder rückgängig machen kann oder was die Konsole für eine Adresse hat?

    Vielen Dank und Gruss



  • In C dürfte das nicht so einfach sein, aber in C++ hast du da bessere Kontrolle:

    streambuf* coutbuf=cout.rdbuf();
    fstream logfile("log.txt");
    cout.rdbuf(logfile.rdbuf);
    ...
    //alle Ausgaben landen im Log-File
    ...
    cout.rdbuf(coutbuf);
    cout<<"Auf Wiedersehen"<<endl;// das kommt wieder auf den Bildschirm
    


  • Vielen Dank für die Antwort, nach meiner Meinung hats da noch ein paar kleine Fehler und somit für die Nachwelt :

    streambuf* coutbuf=cout.rdbuf();
    fstream logfile("log.txt" , ios::out);
    cout.rdbuf(logfile.rdbuf());
    ...
    //alle Ausgaben landen im Log-File
    ...
    cout.rdbuf(coutbuf);
    cout<<"Auf Wiedersehen"<<endl;// das kommt wieder auf den Bildschirm
    

    Vielen Dank für die schnelle Antwort...


Anmelden zum Antworten