0

我正在做一个 C++ 项目,我需要在我的程序中初始化一个 octave 进程,并将 octave 命令写入 octave 标准输入,并从 octave 标准输出和标准错误中获取结果。

我搜索并发现 octave forge 引擎包可以完成这项工作。但我找不到如何使用该软件包。我只想执行简单的命令,例如 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 回答