是否可以将cout或fout传递给函数?

时间:2012-04-27 18:55:00

标签: c++ fstream ofstream

我试图找到一种方法将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;
}

2 个答案:

答案 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等等都可以。但