我正在尝试调用另一个程序来执行一个函数(我不知道它是什么,只是它不是用C ++编写,而是用shell编写)在我的C ++程序中的文件上。我不知道如何在我的程序中实际执行该功能。我知道我写的是这样的东西
system(PROGRAM HERE);
问题在于我不知道我应该如何键入程序。我相信如果函数被称为dostuff,我会输入
system("dostuff");
......我想。但是,如果我将在C ++程序中作为变量提供给该函数的参数,该怎么办?这就是我真正需要帮助的地方。在终端中,我输入“dostuff -1 arg"
。所以在C ++中我会输入
int arg = 5;
system("dostuff" arg);
答案 0 :(得分:5)
您可以先格式化字符串。包含<sstream>
:
int arg = 5;
std::stringstream ss;
ss << "dostuff " << arg;
system(ss.str().c_str());
或者,您可以使用std::string
的串联功能。如果您更喜欢C风格的格式化程序,可以使用snprintf
来达到类似效果。
答案 1 :(得分:0)
简单的答案是
system("dostuff -1 5");
基本上你需要构造终端参数并将其传递给系统调用。
例如:
int arg = 5;
std::stringstream command;
command << "dostuff -1 " << arg;
system(command.str());