运行外部程序并获取返回的整数

时间:2012-10-31 12:20:13

标签: c++ system return

我有以下MWE,它返回一个整数:

#include <iostream>
using namespace std;

int main()
{
    int a = 2;
    return a;
}

现在我想通过Windows中的命令行(cmd)调用此程序。这是我如何做到这一点的程序:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int main()
{
    int a = system("c:\test_batch.exe");
    cout << a << endl;
    return 0;
}

但是这不会返回值2,而是0.我不明白这一点,因为我认为system()返回了程序的退出代码,在本例中为2。

1 个答案:

答案 0 :(得分:1)

系统返回命令interpeter返回的值,而不是实际命令。

你需要做类似

的事情
int a = system("c:\test_batch.exe && exit %ERRORLEVEL%");