[C++] Wie kann ich den Output in eine Textdatei schreiben?
Moin,
Ich bastel mir mit meinen "Grundkenntnissen" (eigentlich bin ich nen totaler Noob) ein kleines Programm, welches mir nach dem Ausführen ein paar Infos über das System (Windows) gibt.
Das Programm ist für nen Windows-Server und soll nach dem Boot die IP's loggen, die er mal bekommen hat.
Egal, mein Problem ist, dass ich den Output von dem Befehlen (Screenshot) gerne in eine .txt-Datei speichern möchte, jedoch bin ich zu doof dafür. Google hilft mir nicht weiter.
Danke im Voraus für eure Antworten.
3 Antworten
Erstmal: von allen Anwendungsfällen für C++ ist das vielleicht der schlechteste, der mir einfallen würde. Deine Aufgabenstellung kannst du mit einem Batchskript (oder meinetwegen Powershell) wesentlich einfacher, schneller und zuverlässiger erledigen - dafür wurde das erfunden.
Aber wenn es sein muss: um den Output von einem gestarteten Prozess einzufangen, ist popen() der übliche und halbwegs portable Weg.
Alternativ kann man auch das Win32-API verwenden, das ist nicht gerade kürzer, aber etwas besser steuerbar: https://docs.microsoft.com/en-us/windows/win32/procthread/creating-a-child-process-with-redirected-input-and-output
Ich kann auch nicht ausschließen dass heute in der Standardlibrary von C++14/17/20 irgendwas Bequemeres für den Zweck existiert, aber das müsste man ergooglen.
Moin,
ofstream MyFile("Filename.txt");
MyFile << DatenZumUebergeben
MyFile.close();
Erstellst also einen ofstream mit Dateinamen und schreibst in diesen hinein wie in ein cout.
LG