如何捕获将 ostream 作为参数的 void 函数的输出放入字符串流中?

发布于 2025-01-20 22:54:07 字数 562 浏览 3 评论 0原文

假设我们有:

void print(std::ostream &o) {
    o << "Hello World!";
}

和:

int main() {
    std::stringstream ss;
    ss << print(std::cout); // does not work
    std::string outputString = ss.str();
    std::cout << outputString << endl;
}

我知道这将无法正常工作,因为print()具有void。我将如何更改代码以使其正常工作?

解决方案:

int main() {
    std::stringstream ss;
    print(ss);
    std::string outputString = ss.str();
    std::cout << outputString << endl;
}

Let's say we have:

void print(std::ostream &o) {
    o << "Hello World!";
}

and:

int main() {
    std::stringstream ss;
    ss << print(std::cout); // does not work
    std::string outputString = ss.str();
    std::cout << outputString << endl;
}

I understand this will not working because print() has type void. How would I change my code for this to work?

Solution:

int main() {
    std::stringstream ss;
    print(ss);
    std::string outputString = ss.str();
    std::cout << outputString << endl;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文