ホームページ >バックエンド開発 >C++ >C 標準の入出力を外部ファイルにリダイレクトするにはどうすればよいですか?

C 標準の入出力を外部ファイルにリダイレクトするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-19 00:03:10473ブラウズ

How to Redirect C   Standard Input and Output to External Files?

入力と出力を外部ファイルにリダイレクトする

標準入力 (cin) からの入力と標準出力 (cout) からの出力を外部ファイルにリダイレクトするは、プログラムの動作のテスト、デバッグ、または分析に役立つテクニックです。

cin を指定されたファイル (例: in.txt) にリダイレクトします。

  • 入力ファイルの ifstream オブジェクトを開きます。
  • cin を使用して cin に関連付けられた古いバッファーを保存します。 .rdbuf().
  • を使用して cin を入力ファイルのバッファにリダイレクトします。 cin.rdbuf(in.rdbuf()).

cout を指定したファイル (out.txt など) にリダイレクトするには:

  • cin のリダイレクトと同じ手順に従いますが、ofstream オブジェクトと cout.rdbuf() を使用します。

コード例:

#include <iostream>
#include <fstream>
#include <string>

int main() {
    // Redirect cin to in.txt
    std::ifstream in("in.txt");
    std::streambuf *cinbuf = std::cin.rdbuf();
    std::cin.rdbuf(in.rdbuf());

    // Redirect cout to out.txt
    std::ofstream out("out.txt");
    std::streambuf *coutbuf = std::cout.rdbuf();
    std::cout.rdbuf(out.rdbuf());

    // Read and write to the redirected streams
    std::string line;
    while (std::getline(std::cin, line)) {
        std::cout << line << "\n";
    }

    // Reset to standard input and output
    std::cin.rdbuf(cinbuf);
    std::cout.rdbuf(coutbuf);
}

注: を使用して、入力と出力の両方を 1 行でリダイレクトすることもできます。次の構文:

auto cinbuf = std::cin.rdbuf(in.rdbuf());
auto coutbuf = std::cout.rdbuf(out.rdbuf());

以上がC 標準の入出力を外部ファイルにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。