标准::系统不';我好像没有执行我的命令 我对C++非常缺乏经验,我正在尝试建立一个程序,它创建一个数据文件,一个GnUpTrand脚本,它绘制数据文件,然后运行GNUScript。我设置的程序按照预期创建数据文件和gnuplot脚本,但是当尝试使用std::system运行脚本时,我实际上没有得到任何输出: std::string sysGnuCommand = "gnuplot output/data/_data.gnu"; int errorGnuSys = std::system(sysGnuCommand.c_str()); if (errorGnuSys == -1) std::cout << "[ERROR]: Couldn't execute GnuPlot.\n";

标准::系统不';我好像没有执行我的命令 我对C++非常缺乏经验,我正在尝试建立一个程序,它创建一个数据文件,一个GnUpTrand脚本,它绘制数据文件,然后运行GNUScript。我设置的程序按照预期创建数据文件和gnuplot脚本,但是当尝试使用std::system运行脚本时,我实际上没有得到任何输出: std::string sysGnuCommand = "gnuplot output/data/_data.gnu"; int errorGnuSys = std::system(sysGnuCommand.c_str()); if (errorGnuSys == -1) std::cout << "[ERROR]: Couldn't execute GnuPlot.\n";,c++,gnuplot,std,C++,Gnuplot,Std,这是我的main函数的代码文件系统只是一个简化数据处理的类,它的工作原理与预期完全一致——我相信它不是问题的根源。我也不是在IDE中工作,所以这不会有任何影响。信息太少,我无法指出您的代码有什么问题 但我认为您可以运行system(“dir”)来检查您的工作目录是否正确 您知道,如果在IDE中运行/调试程序,工作目录可能无法满足您的期望。信息太少,我无法指出您的代码有什么问题 但我认为您可以运行system(“dir”)来检查您的工作目录是否正确 您知道,如果在IDE中运行/调试程序,工作目录可

这是我的
main
函数的代码<代码>文件系统只是一个简化数据处理的类,它的工作原理与预期完全一致——我相信它不是问题的根源。我也不是在IDE中工作,所以这不会有任何影响。

信息太少,我无法指出您的代码有什么问题

但我认为您可以运行
system(“dir”)
来检查您的工作目录是否正确


您知道,如果在IDE中运行/调试程序,工作目录可能无法满足您的期望。

信息太少,我无法指出您的代码有什么问题

但我认为您可以运行
system(“dir”)
来检查您的工作目录是否正确


您知道,如果在IDE中运行/调试程序,工作目录可能无法满足您的期望。

errorGnuSys的实际值是多少-1通常不是它返回的错误,因此您的错误检查不会像这样触发。我检查过,并且
errorGnuSys
为0。我会在
strace-f
下运行它,看看结果如何。我如何正确使用
strace-f
?我对它不熟悉。
errorGnuSys
的实际值是多少-1通常不是它返回的错误,因此您的错误检查不会像这样触发。我检查过,并且
errorGnuSys
为0。我会在
strace-f
下运行它,看看结果如何。我如何正确使用
strace-f
?我对它不熟悉。
system(“dir”)
告诉我在
/output/
目录上方一步的目录中工作,该目录与我运行程序的目录相同。
system(“dir”)
告诉我在
/output/
目录上方一步的目录中工作,这就是我运行程序的目录。
int main(){
    FileSystem _fileManager;

    std::string _outDir = "output/data/";

    create_folder_path(_outDir + "/plots");

    _fileManager.set_directory(_outDir);

    std::string currentName;
    currentName = "_data";

    std::string _csvOutput;
    _csvOutput = currentName + ".csv";
    _fileManager.create_file(_csvOutput);

    std::string _gnuScriptOutput;
    _gnuScriptOutput = currentName + ".gnu";
    _fileManager.create_file(_gnuScriptOutput);


    std::string _gnuText = 
        "system \"dir\"\n"
        "set terminal postscript enhanced color eps\n"
        "set cbrange [0:25]\n"
        "set output \"" + _outDir + "plots/" + currentName + ".ps\"\n"
        "plot \"" + _outDir + _csvOutput + "\" using 1:2:3 notitle with image";
    _fileManager.add_line(_gnuScriptOutput, _gnuText);

    for(int x = 1; x <= 5; ++x){
        for(int y = 1; y <= 5; ++y){
            std::vector<double> outputLine;
            outputLine.push_back(x);
            outputLine.push_back(y);
            outputLine.push_back(x*y);
            _fileManager.add_line(_csvOutput, outputLine);
            outputLine.clear();
        }
    }

    std::string sysGnuCommand = "gnuplot " + _outDir + _gnuScriptOutput;
    int errorGnuSys = std::system(sysGnuCommand.c_str());
    if (errorGnuSys != 0) std::cout << "[ERROR]: Couldn't execute GnuPlot.\n";
}