Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to pass cout or fout to a function?

Tags:

I'm trying to find a way to pass fout or cout to a function. I realize there are logically easy ways to deal with this, like put ifs in any function that outputs data or even just write the function both ways. However, that seems primitive and inefficient. I don't believe this code would ever work, I'm putting it here to ensure it's easy to see what I'd "like" to do. Please be aware that I'm taking a algorithm design class using c++, I'm in no way a seasoned c++ programmer. My class is limited to using the headers you see.

#include <iostream> #include <iomanip> #include <fstream>  using namespace std; void helloWorld(char); ofstream fout;  int main() {     fout.open("coutfout.dat");     helloWorld(c);     helloWorld(f);      return 0; } void helloWorld(char x) {     xout << "Hello World";     return; } 
like image 881
ChiefTwoPencils Avatar asked Apr 27 '12 18:04

ChiefTwoPencils


1 Answers

These both inherit from ostream so try this:

void sayHello(ostream& stream) {     stream << "Hello World";     return; } 

Then in main, pass in the object (cout or whatever) and it should work fine.

like image 198
Kevin Anderson Avatar answered Oct 24 '22 18:10

Kevin Anderson