你如何从C++程序执行带参数的命令行程序?这是我在网上找到的:
http://www.cplusplus.com/forum/general/15794/
std::stringstream stream;
stream <<"program.exe "<<cusip;
system(stream.str().c_str());
但似乎它不接受实际的程序位置,所以我不确定如何应用它。我的希望是有类似这样的东西:
std::stringstream stream;
stream <<"C:\Tests\SO Question\bin\Release\HelloWorld.exe "<<"myargument";
system(stream.str().c_str());
这会生成几个与反斜杠相关的警告 - 程序无法工作。它是否期望你将程序放在特定位置?这是我在控制台中得到的输出:
'C:\Tests' 不是内部或外部命令,可执行程序或批处理文件。
附加说明:
因此,根据Jon的答案,对于我来说,正确的版本如下:
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <cstring>
int main(int argc, char *argv[])
{
std::stringstream stream;
stream << "\"C:\\Tests\\SO Question\\bin\\Release\\HelloWorld.exe\""
<< " " // don't forget a space between the path and the arguments
<< "myargument";
system(stream.str().c_str());
return 0;
}
string myString = "something"; myString += "something else";
或v.2:直接使用类型转换string my = (string)"something" + " " +"something else";
关键是: 您不需要使用另一个库来完成这个操作... - jave.webHelloWorld.exe
的退出值,而不是零。也就是说,将最后两个语句替换为:return system(stream.str().c_str());
。 - Evgeni Sergeev