我试图找到一种方法将fout或cout传递给函数。我意识到有一些逻辑上简单的方法来解决这个问题,例如将ifs放在任何输出数据的函数中,甚至只是双向编写函数。然而,这似乎是原始的和低效的。我不相信这段代码会起作用,我会把它放在这里,以确保它很容易看出我喜欢和#34;喜欢"喜欢"去做。请注意,我使用c ++进行算法设计课程,我绝不是经验丰富的c ++程序员。我的课程仅限于使用您看到的标题。
#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;
}
答案 0 :(得分:38)
这两个都继承自ostream
所以试试这个:
void sayHello(ostream& stream)
{
stream << "Hello World";
return;
}
然后在main中传入对象(cout或其他),它应该可以正常工作。
答案 1 :(得分:12)
是。让你的功能
sayhello(std::ostream &os);
然后,在该函数中,您可以使用os
代替xout
。
(顺便说一句,using namespace std
转储整个std命名空间,不建议使用。using std::cout
等等都可以。但