[英]How can I pass variables from Python back to C++?
我有 2 個文件 - 一個 .cpp 文件和一個 .py 文件。 我使用system("python something.py");
運行 .py 文件,它必須得到一些輸入。 如何將輸入傳遞回 .cpp 文件? 我不使用Python.h
庫,我有兩個單獨的文件。
system()
是一個非常鈍的錘子,在父進程和子進程之間的交互方式上不支持太多。
如果要將信息從 Python 腳本傳遞回 C++ 父進程,我建議使用 python 腳本 print() 將要發送回 C++ 的信息進行標准輸出,並讓 C++ 程序解析 python 腳本的標准輸出-輸出。 system()
不會讓你這樣做,但你可以使用popen()
代替,像這樣:
#include <stdio.h>
int main(int, char **)
{
FILE * fpIn = popen("python something.py", "r");
if (fpIn)
{
char buf[1024];
while(fgets(buf, sizeof(buf), fpIn))
{
printf("The python script printed: [%s]\n", buf);
// Code to parse out values from the text in (buf) could go here
}
pclose(fpIn); // note: be sure to call pclose(), *not* fclose()
}
else printf("Couldn't run python script!\n");
return 0;
}
如果您想獲得比這更詳細的信息,您可能需要將 Python 解釋器嵌入到您的 C++ 程序中,然后您就可以直接調用 Python 函數並將它們的返回值作為 Python 對象取回,但這是一個我猜你想避免的相當重要的任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.