입력 및 출력을 파일로 동시에 리디렉션
다음과 같은 다양한 이유로 표준 입력 및 출력 스트림을 파일로 리디렉션할 수 있습니다. 사용자 데이터를 수집하거나 일괄 처리를 수행합니다. 이 기사에서는 C에서 이를 달성하기 위한 포괄적인 솔루션을 제공합니다.
솔루션
제공된 C 코드는 표준 입력(cin)를 지정된 파일("in.txt")로, 표준 출력(cout)을 지정된 파일로 ("out.txt"):
#include <iostream> #include <fstream> #include <string> void f() { std::string line; while (std::getline(std::cin, line)) { // input from "in.txt" std::cout << line << "\n"; // output to "out.txt" } } int main() { std::ifstream in("in.txt"); std::streambuf *cinbuf = std::cin.rdbuf(); // save old cin buffer std::cin.rdbuf(in.rdbuf()); // redirect std::cin to "in.txt" std::ofstream out("out.txt"); std::streambuf *coutbuf = std::cout.rdbuf(); // save old cout buffer std::cout.rdbuf(out.rdbuf()); // redirect std::cout to "out.txt" std::string word; std::cin >> word; // input from "in.txt" std::cout << word << " "; // output to "out.txt" f(); // call function std::cin.rdbuf(cinbuf); // reset cin to standard input std::cout.rdbuf(coutbuf); // reset cout to standard output std::cin >> word; // input from standard input std::cout << word; // output to standard output }
auto cinbuf = std::cin.rdbuf(in.rdbuf()); // save and redirect input
위 내용은 표준 입력과 출력을 C의 파일로 어떻게 리디렉션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!