0

整数を返す次の 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) を返したと思ったので、これを理解できません。

4

1 に答える 1

1

system は、実際のコマンドではなく、コマンド インターピーターによって返される値を返します。

次のようなことをする必要があります

int a = system("c:\test_batch.exe && exit %ERRORLEVEL%");
于 2012-10-31T12:32:59.500 に答える