簡體   English   中英

從c ++應用程序返回幾個輸出

[英]returning several outputs from c++ application

我正在編寫一個c ++程序,它評估3個值的結果。

我想通過python腳本調用此應用程序,該腳本應接收這些值。

問題是c ++主函數僅返回一個整數值。

解決此問題的最佳方法是什么?

謝謝!

您可以將中間值保存在文件中,也可以在c ++代碼中寫入stdout ,例如

#include <iostream>

int main()
{
    std::cout << "param1,param2,param3\n";
}

現在在python中使用subprocess.Popen執行c ++代碼並使用PIPE捕獲stdout

from subprocess import Popen, PIPE

process = Popen('./nameofyourexe', stdout=PIPE, stderr=PIPE)

output, err = process.communicate()

if process.returncode == 0:
    print(output.decode().strip().split(','))
else:
    print('error: %s' % err.decode())

由您決定輸出三個參數的格式。 我將它們全部放在同一行,用逗號隔開,然后簡單地在python代碼中split 您可以根據自己的需要選擇其他方式。

編譯c ++並從同一目錄運行python之后。 輸出是

['param1', 'param2', 'param3']

注意:

我用'./nameofyourexe' (前綴./ )從當前目錄執行程序。 這可能不適用於Windows(我在Linux上),或者如果您從與當前目錄不同的目錄中執行它。 為了得到這個你周圍可以通過cwd參數Popen指定包含exe文件的目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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