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).