在C ++中使用system()调用其他程序

时间:2013-07-18 15:42:41

标签: c++

我正在使用Bruce Eckel撰写的“Thinking in C ++:Volume 1”一书来练习C ++。它是一个使用system()命令调用其他程序的小程序。我已经在我的练习文件夹中编译了一个脚本“Hello.cpp”,其中包含目标文件“Hello”。我试图开始工作的代码可以在本书的第108页找到(在互联网上是免费的,只有谷歌的标题和作者),如下所示:

//: cplusplus:CallHello.cpp
// Call another program
#include <cstdlib> //Declare "system()"
using namespace std;

int main (){
    system("Hello");
}///:~

当我运行此代码时,我收到错误:

sh: 1: Hello: not found

“Hello.cpp”在目录中,并且具有关联的目标文件“Hello”,它运行得非常好。这有什么不对?

编辑:尝试解决不起作用的问题如下:更改为“Hello.o”或“Hello.exe”;将包含的头文件更改为。

编辑:经过更彻底的阅读后,我发现了为什么代码不起作用。基本上,函数system()的参数在命令行上执行命令。

2 个答案:

答案 0 :(得分:0)

如果Hello是一个可执行文件,那么使用system(“./ Hello”);

如果你在目录中有源代码来执行可执行文件就没关系

答案 1 :(得分:0)

我猜测但是尝试系统(“./ Hello”);

它闻起来像一个路径问题。

你要运行的bin是“Hello”而不是说“Hello.exe”或“Hello.a”或“Hello.elf”或者其他什么,是吗?