【问题标题】:How do I run another program from a C++ program如何从 C++ 程序运行另一个程序
【发布时间】:2011-10-17 20:35:18
【问题描述】:

我试图调用另一个程序来在我的 C++ 程序中的一个文件上执行一个函数(我不知道是什么,只是它不是用 C++ 编写的,而是用 shell 编写的)。我不知道如何在我的程序中实际执行该功能。我确实知道我写了这样的东西

system(PROGRAM HERE);

问题是我不知道我应该如何输入程序。我相信如果该函数被称为 dostuff,我会输入

system("dostuff");

... 我想。但是,如果我将在我的 C++ 程序中作为变量提供给该函数的参数会怎样?这就是我真正需要帮助的地方。在终端中,我会输入“dostuff -1 arg"。所以在 C++ 中我会输入

int arg = 5;

system("dostuff" arg); 

【问题讨论】:

  • ked,欢迎来到 SO。很难理解这里问的是什么。请提供更多信息。

标签: c++ function shell terminal system


【解决方案1】:

你可以先格式化字符串。包括<sstream>

int arg = 5;
std::stringstream ss;
ss << "dostuff " << arg;
system(ss.str().c_str());

或者,您可以使用std::string 的串联功能。如果你更喜欢 C 风格的格式化程序,你可以使用 snprintf 来达到类似的效果。

【讨论】:

  • 谢谢!有效!以我的方式做它不起作用所以......你救了我:)
【解决方案2】:

简单的答案是

system("dostuff -1 5");

本质上,您需要构造终端参数并将其传递给系统调用。

例如:

int arg = 5;
std::stringstream command;

command << "dostuff -1 " << arg;

system(command.str());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 2012-02-25
    • 2020-03-25
    • 2013-02-19
    • 1970-01-01
    • 2014-06-10
    • 2016-03-01
    • 2010-11-27
    相关资源
    最近更新 更多