0

わかりました、プログラム (Windows では .exe ファイル) があり、それを実行すると、いくつかの情報が出力されます... 今、別のプログラム (c++ で) を作成していて、その .exe ファイルを自動的に実行する必要があります。さらなるアクションのためにその情報を処理できるように、出力を読み取ります...

私は何をすべきか ?

4

1 に答える 1

3

Windows で or を使用popenします (コメントごと) _popen|基本的には中の背後にあるものとして機能しsome program | thingます。

通常、私は完全なコードを投稿することに反対していますが、今日これを文字通り書いて手元に置いているので、どうぞ。私が理解していることから、C++には置き換える優れたインターフェースがありませんがpopen、ブーストライブラリまたはそのレイヤーに何かを持ち込む場合は解決策があります。

char[10]私のアプリケーションでは、出力がそれほど短いことがわかっているため、使用することに注意してください。

   PopenWrapper(const std::string& command) {

            fd = popen(command.c_str(), "r");
            if(fd == NULL) {
                    throw PopenException("Failed to open command: " + command);
            }
    }

    std::string get() {
            char line[10];
            fgets(line, sizeof(line), fd);
            return std::string(line);
    }

    ~PopenWrapper() {
            if(fd != NULL) {
                    pclose(fd);
            }
    }
于 2012-06-08T22:44:18.830 に答える