首頁 > 後端開發 > C++ > 如何將 C 標準輸入和輸出流重定向到檔案?

如何將 C 標準輸入和輸出流重定向到檔案?

Patricia Arquette
發布: 2024-12-23 00:08:09
原創
367 人瀏覽過

How Can I Redirect C   Standard Input and Output Streams to Files?

將輸入和輸出流重新導向到檔案

將標準輸入(cin)和標準輸出(cout)重新導向到檔案進行輸入和輸出操作分別遵循這些步驟:

實現:

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

int main() {
    // Open the input and output files
    std::ifstream in("in.txt");
    std::ofstream out("out.txt");

    // Redirect cin and cout to the files
    std::streambuf* cinbuf = std::cin.rdbuf();
    std::cin.rdbuf(in.rdbuf());
    std::streambuf* coutbuf = std::cout.rdbuf();
    std::cout.rdbuf(out.rdbuf());

    // Perform input and output operations
    std::string line;
    while (std::getline(std::cin, line)) {
        std::cout << line << "\n";
    }

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

    return 0;
}
登入後複製

說明:

  • 說明:
  • 說明:
  • 儲存使用 std::cin.rdbuf() 和 std::cout.rdbuf() 取得 cin 和 cout 的目前緩衝區。
  • 使用std::cin 將cin 重定向到輸入檔的緩衝區,將cout 重新導向到輸出檔的緩衝區.rdbuf(in.rdbuf()) 和std::cout.rdbuf(out .rdbuf()).
執行輸入和輸出操作照常進行。

使用 std::cin.rdbuf(cinbuf) 和 std::cout.rdbuf(coutbuf) 將 cin 和 cout 恢復到原始緩衝區。

簡化重定向:
auto cinbuf = std::cin.rdbuf(in.rdbuf());
登入後複製

您也可以儲存並重定向一行使用:這將cin 設定為in.rdbuf() 並傳回與cin 關聯的舊緩衝區。相同的技術可以用於 std::cout。

以上是如何將 C 標準輸入和輸出流重定向到檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板