0

私は C++ プロジェクトに取り組んでおり、プログラム内でオクターブ プロセスを初期化し、オクターブ コマンドをオクターブ標準入力に書き込み、オクターブ標準出力と標準エラーから結果を取得する必要があります。

検索したところ、octave forge engine パッケージがその仕事をしていることがわかりました。しかし、そのパッケージの使用方法が見つかりませんでした。5+5 などの単純なコマンドを実行して、答えを得たいだけです。

オクターブエンジンパッケージを使用するか、他の方法を使用してこれを行う方法はありますか?

4

1 に答える 1

0

まず、Qt を使用してQProcessを作成しました。

QStringList arguments;
    arguments << "--persist"; //set arguments of the octave process. --persist:Go interactive after
    octave.setProcessChannelMode(QProcess::MergedChannels); //set process channel
    octave.start("/usr/bin/octave", arguments);//If octave has installed into any other directory this should be changed.

その後、オクターブ処理の標準入力に書き込めるようになりました。

if(octave.state()==QProcess::Starting){
        octave.waitForStarted();
        //TODO:should set a timeout and if timeout happens set a error report.
        processWrite(command);
    }
    else if(octave.state()==QProcess::Running){
        //TODO write Code
        octave.waitForReadyRead(1000);//wait until Standered output ready
        if(command.isEmpty()){
            return;
        }
        else{
            command+="\n";
            octave.write(command.toUtf8());
        }
    }
    else{
        //TODO: Error reporting
    }
于 2013-09-21T15:28:15.840 に答える