konsolenoutput eines anderen programms in variable packen



  • hallo,

    könnte mir jemand bei dem problem helfen .

    ich würde gerne den konsolenoutput einer anderen exe datei in eine variable packen, wäre super wenn das geht,

    die standardgbeispeile im netz sind alle nur "bsp.exe" >> "bsp.txt", also den output in eine txtfile zu packen, ich hätts gerne in eine variable wie char*



  • Für Windows:
    http://msdn.microsoft.com/en-us/library/ms682499(v=VS.85).aspx

    ansonsten kannst Du natürlich nach:

    bonzenbauer schrieb:

    die standardgbeispeile im netz sind alle nur "bsp.exe" >> "bsp.txt"

    die Datei bsp.txt mit Deinem Programm öffnen und einlesen ...



  • Oder noch einfacher, du pipst den Output einfach in den Input des anderen Programms.

    a.exe | b.exe
          ^ <-Pipe
    

    Dabei gelten natürlich die selben Beschränkungen, wie bei der Eingabe von Hand. (Whitespaces und Newline übernehmen die Eingabe)

    Sprich alles was du mit std::cout bei a.exe raus schreibst wird in b.exe bei std::cin eingelesen.



  • "
    Sprich alles was du mit std::cout bei a.exe raus schreibst wird in b.exe bei std::cin eingelesen."

    Das ist ja interessant.

    Also einfach in Programm a.exe in den Quellcode std::cout << "Hallo"

    eingeben ...

    und in b.exe const char * <<std::cin schreiben und dann programm b starten, abfrage abwarten und b starten und voila?

    oder doch nicht so einfach??


  • Mod

    bonzenbauer schrieb:

    "

    und in b.exe const char * <<std::cin schreiben und

    Oje, ich glaube hier liegen ganz andere Probleme vor.

    dann programm b starten, abfrage abwarten und b starten und voila?

    Nein, beide Programme gleichzeitig starten und dabei mittels '|' mit einer Pipe verbinden. Das hat mit C++ grundsätzlich nichts zu tun, sondern ist ein Standardfeature jeder gängigen Kommandozeile.


Anmelden zum Antworten