Ausgabe der Eingabeaufforderung in einen String speichern



  • Hy,
    ich möchste die system(const char*) Funktion benutzen und die Ausgabe der Eingabeaufforderung, die darauf erfolgt gerne in einen String schreiben. Wie kann ich das am besten machen?



  • hmm...
    so öffnen:

    system("ausgabeprogramm.exe > ausgabe.txt");
    

    und dann aus der datei "ausgabe.txt" den Inhalt auslesen.

    auslesen...

    char str[100];
    FILE *stream;
    if((stream=fopen("ausgabe.txt","r"))!=NULL)
    {
       fgets(str,100,stream); 
       fclose(stream);
    }
    else
    {
       printf("Die Datei ist nicht vorhanden");
    }
    


  • naja du könntest den befehl auch direkt per pipe
    öffnen und den rückgabewert sofort in einer vari speichern!
    ist mmn praktischer!

    musstest mal nach "pipe" im forum suchen, findest du auf jeden fall was!

    danke, Babelduo



  • mit pipes kann man die stdout mit der stdin eines 2. programmes berknüpfen..
    es würden aber probleme auftreten, die nicht bzw. nur schwer zu lösen sind:

    😉 die programme müssen den standardout und input verwenden
    😉 dein programm und die zu öffnende datei müssen gleichzeitig geöffnet werden dh. schon bei programmstart muss der benuter mit

    einlesen.exe | ausgabe.exe
    

    dein programm öffnen
    Dein programm kann dann nicht selbst das auszuführende programm öffnen
    😉 du musst dauernd checken, ob das 2. programm noch läuft (sonst wird vom STDIN eingelesen.. sprich tastatur)
    😉 du musst darauf achten, dass du das 2. programm nicht mit stdoutputs beeinflusst(es sei denn, dies ist beabsichtigt)

    ich hoffe, dass meine aussagen richtig sind; und bitte um korrektur sollten sich fehler eingeschlichen haben.

    mfG (c)h



  • Warum denn alles so kompliziert, wenn es auch einfacher geht.
    Es gibt eine Funktion, mit der man einen Prozess (Programm) starten kann und dann das stdin und stdout Handling über einen Stream oder ähnliches managen kann. Den Namen hab ich jetzt leider nicht im Kopf, aber sucht mal in der MSDN msdn.microsoft.com .


Anmelden zum Antworten