Skip to content

Instantly share code, notes, and snippets.

@mandyedi
Created June 6, 2017 22:09
Show Gist options
  • Save mandyedi/ae68a3191096222c62655d54935e7bb2 to your computer and use it in GitHub Desktop.
Save mandyedi/ae68a3191096222c62655d54935e7bb2 to your computer and use it in GitHub Desktop.
Redirect cin and cout to file.
// https://stackoverflow.com/questions/10150468/how-to-redirect-cin-and-cout-to-files
#include <iostream>
#include <fstream>
#include <string>
void f()
{
std::string line;
while(std::getline(std::cin, line)) //input from the file in.txt
{
std::cout << line << "\n"; //output to the file out.txt
}
}
int main()
{
std::ifstream in("in.txt");
std::streambuf *cinbuf = std::cin.rdbuf(); //save old buf
std::cin.rdbuf(in.rdbuf()); //redirect std::cin to in.txt!
std::ofstream out("out.txt");
std::streambuf *coutbuf = std::cout.rdbuf(); //save old buf
std::cout.rdbuf(out.rdbuf()); //redirect std::cout to out.txt!
std::string word;
std::cin >> word; //input from the file in.txt
std::cout << word << " "; //output to the file out.txt
f(); //call function
std::cin.rdbuf(cinbuf); //reset to standard input again
std::cout.rdbuf(coutbuf); //reset to standard output again
std::cin >> word; //input from the standard input
std::cout << word; //output to the standard input
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment