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

Is it possible to pass cout or fout to a function?

本文关键字:函数 fout cout 是否      更新时间:2023-10-16

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

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

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

然后在main中,传入对象(cout或其他什么(,它应该可以正常工作。

是的。 让你的函数成为

sayhello(std::ostream &os);

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

(顺便说一下,using namespace std转储整个 std 命名空间,不建议这样做。 不过,using std::cout之类的都没关系。