使用 ostream 变量删除代码重复

Remove code duplication with an ostream variable

我有

void fnc(std::ofstream& file){
    std::cout << x;
    file << x;
}

x 有点复杂,我想删除代码重复。

我试过

void fnc(std::ofstream& file){
    std::ostream os;
    os << x;
    std::cout << os;
    file << os;
}

但它不起作用。使用运算符 << 删除代码重复的最佳方法是什么?

感谢 drescherjm,解决方案如下:

void fnc(std::ofstream& file){
    std::ostringstream os;
    os << x;
    std::cout << os.str();
    file << os.str();
}