float dev convertir convert array c++ fstream ofstream

dev - int to char c++



¿Es posible pasar cout o fout a una función? (2)

Estoy tratando de encontrar una manera de pasar fout o cout a una función. Me doy cuenta de que hay maneras lógicamente fáciles de lidiar con esto, como poner ifs en cualquier función que genere datos o simplemente escribir la función en ambos sentidos. Sin embargo, eso parece primitivo e ineficiente. No creo que este código funcione, lo pongo aquí para garantizar que sea fácil ver lo que "me gustaría" hacer. Tenga en cuenta que estoy tomando una clase de diseño de algoritmos usando c ++, de ninguna manera soy un programador de c ++ experimentado. Mi clase se limita a usar los encabezados que ves.

#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; }


Ambos heredan de ostream así que prueba esto:

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

Luego, en main, pase el objeto (cout o lo que sea) y debería funcionar bien.


Sí. Deja que tu función sea

sayhello(std::ostream &os);

Luego, en la función, puedes usar os en lugar de xout .

(Por cierto, el using namespace std descarga todo el espacio de nombres estándar y no se recomienda. Sin embargo, un using std::cout y similares está bien).