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
Lepaskan: 2024-12-27 16:43:10
asal
446 orang telah melayarinya

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());
Salin selepas log masuk

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());
Salin selepas log masuk

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);
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan