簡體   English   中英

如何將變量從 Python 傳遞回 C++?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM