1

freopen() を複数回使用して、さまざまなファイルを読み取って閉じようとしています。したがって、メイン関数内で行ったことは次のとおりです。

if (argc != 5) {
    std::cerr << "Wrong format of arguments given." << endl;
    return -1;
}
std::string command, command2;
freopen(argv[1], "r", stdin);
// do something...
fclose(stdin);
freopen(argv[2], "r", stdin);
freopen(argv[3], "w", stdout);
while (std::cin >> command) {
    std::cin >> command2;
    // run some function...
}
fclose(stdin);
fclose(stdout);

しかし、最初の部分は問題なく// do something...動作します (問題なく読み取りますstd::cin) が、2 番目の while ループは実行されないようです。std::cin >> command入力ファイルは正しい形式であるため、 false を返す理由がわかりません。

4

1 に答える 1