2016-06-07 2 views
-3

Ich versuche, Aspekte von zwei verschiedenen Skripten zu nehmen und sie in einem einzigen C++ - Programm (mit Ubuntu) zu verwenden. Das Problem, das ich habe, ist, dass eines der Skripte in C++ geschrieben ist und das andere in Python geschrieben ist. Ich habe versucht, dies mit der Python.h-Bibliothek zu erreichen, aber (ich bin ziemlich neu in der Programmierung), kann ich keine Ressourcen finden, die mir erlauben würden, die Python-Datei in C++ zu öffnen. Hat jemand irgendwelche Vorschläge?Wie ruft man ein großes Python-Skript in C++ auf?

Als Beispiel möchte ich so etwas wie die folgenden Funktionen ausführen:

#include <python2.7/Python.h> 
//include other stuff 

int main (int argc, char *argv[]) 
{ 
    //open python script here 
    //use result from python script here 
} 

Dank!

+0

Nachschlagen von System- oder Popen-Systemaufrufen. 'man 2 system' ODER' man 2 popen' – Arunmu

+0

Nur als Nachschlagewerk wird C++ nicht als Skript betrachtet, da es sich um eine kompilierte Sprache handelt. Auch große Python-Skripte werden genauso wie kleine aufgerufen/gestartet. Der andere Rat, den Sie erhalten haben, ist gut - "system()", wenn Sie nicht daran interessiert sind, die Ausgabe Ihres Python-Skripts zu sammeln, und 'popen()', wenn Sie es sind. –

Antwort

0

Sie sollten popen verwenden, es pipes stdin/stdout des untergeordneten Prozesses zum zurückgegebenen Dateihandle. Nun, was Sie tun können, ist

File* in = popen("python script_name.py", "r"); 

Jetzt können Sie diese FILE* verwenden, um die Ausgabe Ihres Python-Skript zu lesen.

Dann können Sie fscanf(in, buffer_size, buffer) von fgets(buffer, buffer_size, in) verwenden, um aus der Datei zu lesen. Schließlich nach dem Lesen aus der Datei nicht vergessen, pclose(in) zu rufen.

Verwandte Themen