标准::系统不';我好像没有执行我的命令 我对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";
}