我正在写一个程序,将解决一种类型的最小。生成树问题。我有两个不同的算法,我已经在两个独立的.cpp文件中工作,我已经命名为kruskels.cpp和prims.cpp。
我的问题是:
每个文件都使用以下命令行来运行它。时间。/文件名输入文件因数
我想做一个程序,根据输入的文件类型,可以运行kruskels.cpp或prims.cpp。我该怎么做呢?
该程序必须将这些命令行参数传递给kruskels或prims。每个文件(kruskels.cpp和prims.cpp)都被设计为使用这些命令行参数来运行(因此它们接受INPUTFILE和FACTOR作为变量来执行文件io)。
这应该是针对c++的。
发布于 2010-04-09 00:54:33
您可以使用system函数调用外部程序。
然而,以模块化的方式构建Kruskal和Prim解算器作为类,并根据输入从main实例化适当的类会更好。为此,您需要将kruskels.cpp、prims.cpp和main.cpp链接到单个可执行文件中。
发布于 2010-04-09 00:55:22
标准方法是使用system()。您可能还想查找popen() (或者,在Windows上,查找_popen())。
编辑:我的假设是您有两个可执行文件,并且(关键点)希望将它们作为单独的可执行文件。在这种情况下,使用system非常简单。例如,您可以这样做:
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的方法。如果没有看到它们的代码,就不可能猜测这会有多大的工作量。
发布于 2010-04-09 01:51:25
如果需要top程序在执行两个子程序中的一个后重新获得控制权,可以使用system()或popen(),如果不需要,则可以使用execve()。
https://stackoverflow.com/questions/2601831
复制相似问题