cin と cout を外部ファイルにリダイレクトする
入力ストリームと出力ストリーム (それぞれ cin と cout) を外部ファイルにリダイレクトするには、次の手順を実行します。これらの手順:
#include <iostream> #include <fstream> int main() { // Open input file for reading std::ifstream in("in.txt"); // Save old input buffer std::streambuf *cinbuf = std::cin.rdbuf(); // Redirect cin to input file std::cin.rdbuf(in.rdbuf()); // Open output file for writing std::ofstream out("out.txt"); // Save old output buffer std::streambuf *coutbuf = std::cout.rdbuf(); // Redirect cout to output file std::cout.rdbuf(out.rdbuf());
この時点から、入力はすべて読み込まれます。 std::cin は「in.txt」から取得され、std::cout に書き込まれる出力はすべて「out.txt」に書き込まれます。
1 行でリダイレクトするには、次を使用します。
auto cinbuf = std::cin.rdbuf(in.rdbuf());
これにより、std::cin のバッファが in.rdbuf() に設定され、後で使用できるように古いバッファが返されます。同じ手法を std::cout (または他のストリーム) にも使用できます。
最後に、標準入出力を復元するために、バッファをリセットします:
std::cin.rdbuf(cinbuf); std::cout.rdbuf(coutbuf);
以上がC の `cin` と `cout` を外部ファイルにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。