我有以下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。
答案 0 :(得分:1)
系统返回命令interpeter返回的值,而不是实际命令。
你需要做类似
的事情int a = system("c:\test_batch.exe && exit %ERRORLEVEL%");