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

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

DDD
DDD原創
2024-12-19 00:03:10542瀏覽

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

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

將標準輸入(cin) 的輸入和標準輸出(cout) 的輸出重定向到外部文件是一種用於測試、調試或分析程式行為的有用技術。

將 cin 重新導向到指定檔案(例如 in.txt):

  • 為輸入檔案開啟一個 ifstream 物件。
  • 使用cin.rdbuf() 儲存與cin 相關的舊緩衝區.
  • 使用下列指令將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);
}

注意: 您也可以使用下列指令在一行中重新導向輸入和輸出以下指令文法:

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

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn