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 を返す理由がわかりません。