我正在Windows上使用CodeBlocks从事C++项目,但后来决定切换到NetBeans IDE 8.2。
在我的项目中,我正在调用另一个带有一些传递参数的可执行文件(我使用合适的参数运行另一个.exe,然后将其输出用于我的主项目中),并且它以前在CodeBlocks上起作用,但在NetBeans上不起作用。
代码如下:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <cstdlib>
#include <string.h>
#include <sstream>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include "My_Constants.h"
#include "Data.h"
#include "Parameters.h"
#include "Pattern.h"
#include "Squish.h"
#include "Deserializer.h"
#include "Automatic_Run.h"
using namespace std;
int main()
{
Parameters parameters;
parameters.mode = SQUISH;
Automatic_Run runner;
string inputname;
//--------------------------------User Input-------------------------------------
cout << "enter input file name \n";
getline(cin, inputname);
parameters.inputFileName.assign(inputname);
cout<<"=============================================================================\n";
//--------------------------------Running SQUISH/first call--------------------------
cout<<"Running SQUISH - first call\n";
char command[1000]="";
string passedParameters = " -i "+parameters.inputFileName +" -f "+ "t";
strcat(command,"C:\\Users\\Administrator\\Documents\\CodeBlocksProjects\\TestSQUISH\\bin\\Debug\\TestSQUISH.exe ");
strcat(command,passedParameters.c_str());
int result = system(command);
// the rest of the code(not relevant to the problem)
return 0;
}
在CodeBlocks上,它曾经可以完美地工作,并在我的主项目(我从中调用TestSQUISH)的路径中将输出作为文件提供给我。但是,现在在NetBeans上,出现以下错误:
我检查了NetBeans的终端以了解正在发生的事情(假设它可能是相关的),并且我注意到必须先更改路径,然后使用以下命令运行可执行文件:
但是,这对我的项目也不起作用。
任何人都可以提出解决方案或告诉我如何让NetBeans像CodeBlocks一样在Windows终端上运行命令吗?
最佳答案
转到项目设置,然后将要执行的项目路径设置为另一个应用程序所在的文件夹。
要么
设置系统路径以包括该文件夹。
关于c++ - C++ “system(command)”在NetBeans/Windows上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59174310/