24

我正在尝试找到一种将 fout 或 cout 传递给函数的方法。我意识到有一些逻辑上简单的方法来处理这个问题,比如将 ifs 放在任何输出数据的函数中,甚至只是双向编写函数。然而,这似乎是原始和低效的。我不相信这段代码会起作用,我把它放在这里是为了确保很容易看到我“想要”做什么。请注意,我正在学习使用 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;
}
4

2 回答 2

44

这些都继承自ostream所以试试这个:

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

然后主要是传入对象(cout 或其他),它应该可以正常工作。

于 2012-04-27T18:58:08.273 回答
13

是的。让你的功能是

sayhello(std::ostream &os);

然后,在函数中,您可以使用os.xout

(顺便说一句,using namespace std转储整个 std 命名空间,不推荐。using std::cout不过,A 之类的也可以。)

于 2012-04-27T18:58:06.740 回答