Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mengubah hala `cin` dan `cout` C ke Fail Luaran?

Bagaimanakah saya boleh mengubah hala `cin` dan `cout` C ke Fail Luaran?

Patricia Arquette
Patricia Arquetteasal
2024-12-27 16:43:10402semak imbas

How Can I Redirect C  's `cin` and `cout` to External Files?

Mengubah hala cin dan cout ke Fail Luaran

Untuk mengubah hala aliran input dan output (masing-masing cin dan cout) ke fail luaran, ikuti langkah-langkah berikut:

#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());

Mulai saat ini, sebarang input yang dibaca daripada std::cin akan datang daripada "in.txt," dan sebarang output yang ditulis ke std::cout akan ditulis kepada "out.txt."

Untuk mengubah hala dalam satu baris, gunakan:

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

Ini menetapkan penimbal std::cin kepada in.rdbuf() dan mengembalikan penimbal lama untuk kegunaan kemudian. Teknik yang sama boleh digunakan untuk std::cout (atau mana-mana aliran lain).

Akhir sekali, untuk memulihkan input dan output standard, tetapkan semula penimbal:

std::cin.rdbuf(cinbuf);
std::cout.rdbuf(coutbuf);

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengubah hala `cin` dan `cout` C ke Fail Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn