[英]How do I run a program from another program and pass data to it via stdin in c or c++?
[英]How do I run another program from a C++ program
我试图调用另一个程序在我的C ++程序中的文件上执行一个功能(我不知道是什么,只知道它不是用C ++编写的,而是用shell编写的)。 我不知道如何在程序中实际执行功能。 我知道我写这样的东西
system(PROGRAM HERE);
问题是我不知道该如何键入程序。 我相信如果要将该函数称为dostuff,我会输入
system("dostuff");
... 我认为。 但是,如果我在C ++程序中将附加给该函数的变量作为变量怎么办? 那就是我真正需要帮助的地方。 在终端中,我将输入“ dostuff -1 arg"
。 所以在C ++中我会输入
int arg = 5;
system("dostuff" arg);
您可以先格式化字符串。 包含<sstream>
:
int arg = 5;
std::stringstream ss;
ss << "dostuff " << arg;
system(ss.str().c_str());
另外,您可以使用std::string
的串联功能。 如果您更喜欢C风格的格式化程序,则可以使用snprintf
达到类似的效果。
简单的答案是
system("dostuff -1 5");
本质上,您需要构造终端参数并将其传递给系统调用。
例如:
int arg = 5;
std::stringstream command;
command << "dostuff -1 " << arg;
system(command.str());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.