Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Visual Studio 2005获取两个C++程序之间的返回值_C++_C_Visual Studio - Fatal编程技术网

如何使用Visual Studio 2005获取两个C++程序之间的返回值

如何使用Visual Studio 2005获取两个C++程序之间的返回值,c++,c,visual-studio,C++,C,Visual Studio,现在,我有两个程序A和B。程序A使用系统执行程序B 但是,程序B使用写入文件的方式返回其执行结果 程序A是否有更好的方法获取程序B的返回值 比如说 在程序A中 int main(){ system("B.exe"); readFile(finePath); //do something return 0; } 在程序B中 int main(){ char temp[1024]; //do something writeFile(temp)

现在,我有两个程序A和B。程序A使用系统执行程序B

但是,程序B使用写入文件的方式返回其执行结果

程序A是否有更好的方法获取程序B的返回值

比如说

在程序A中

int main(){
    system("B.exe");
    readFile(finePath);
    //do something
    return 0;
}
在程序B中

int main(){
    char temp[1024];
    //do something
    writeFile(temp);
    return 0;
}
方法1

尝试使用ERRORLEVEL系统变量检查任何正在运行的程序的返回值

注: ERRORLEVEL是一个系统变量,因此将其用作

方法2


您可以使用属性。

管道是一种相对简单的跨平台方法,无需到处创建临时文件,也无需处理由此产生的其他问题

static string pcommand(const string& cmd) 
{
    FILE* stream = _popen(cmd.c_str(), "r");
    string data;
    if (stream) 
    {
        while (!feof(stream))
        {
            const int buffer_size = 256;
            char buffer[buffer_size];
            if (fgets(buffer, buffer_size, stream))
                data.append(buffer);
        }
        _pclose(stream);
    }
    return data;
}

int main()
{
    string 'str' = pcommand("dir");
    // 'str' now contains the results sent to stdout
}

向我们展示您尝试过的简约代码。请看-也许您会在其中找到一些有用的信息。术语返回值对我来说有点混淆,所以请确保。你不是在问程序B的状态码吧?问题是关于获得B产生的各种结果/输出,对吗?原因状态代码通常由系统直接返回。看我更新了一个例子。请帮帮我。是的:。我认为通常在其他平台上,可以避免使用下划线前缀。