首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序调用其他程序

程序调用其他程序
EN

Stack Overflow用户
提问于 2010-04-09 00:51:24
回答 3查看 2.3K关注 0票数 1

我正在写一个程序,将解决一种类型的最小。生成树问题。我有两个不同的算法,我已经在两个独立的.cpp文件中工作,我已经命名为kruskels.cpp和prims.cpp。

我的问题是:

每个文件都使用以下命令行来运行它。时间。/文件名输入文件因数

我想做一个程序,根据输入的文件类型,可以运行kruskels.cpp或prims.cpp。我该怎么做呢?

该程序必须将这些命令行参数传递给kruskels或prims。每个文件(kruskels.cpp和prims.cpp)都被设计为使用这些命令行参数来运行(因此它们接受INPUTFILE和FACTOR作为变量来执行文件io)。

这应该是针对c++的。

EN

回答 3

Stack Overflow用户

发布于 2010-04-09 00:54:33

您可以使用system函数调用外部程序。

然而,以模块化的方式构建Kruskal和Prim解算器作为类,并根据输入从main实例化适当的类会更好。为此,您需要将kruskels.cpp、prims.cpp和main.cpp链接到单个可执行文件中。

票数 6
EN

Stack Overflow用户

发布于 2010-04-09 00:55:22

标准方法是使用system()。您可能还想查找popen() (或者,在Windows上,查找_popen())。

编辑:我的假设是您有两个可执行文件,并且(关键点)希望将它们作为单独的可执行文件。在这种情况下,使用system非常简单。例如,您可以这样做:

代码语言:javascript
复制
std::stringstream buffer;

if (use_Kruskals)
   buffer << "Kruskals " << argv[1] << argv[2];
else
   buffer << "Prims " << argv[1] << argv[2];

system(buffer.str().c_str());

根据您正在做的事情(正如Eli所指出的),您可能希望创建单个可执行文件,并在该可执行文件中实现Prim和Kruskal的方法。如果没有看到它们的代码,就不可能猜测这会有多大的工作量。

票数 2
EN

Stack Overflow用户

发布于 2010-04-09 01:51:25

如果需要top程序在执行两个子程序中的一个后重新获得控制权,可以使用system()或popen(),如果不需要,则可以使用execve()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2601831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档