gpt4 book ai didi

c++ - 打印到控制台或字符串/流

转载 作者:搜寻专家 更新时间:2023-10-31 02:11:50 26 4
gpt4 key购买 nike

我需要一个 C++ 函数将一些文本数据(多行)转储到控制台:

void DumpData() const
{
std::cout << "My Data 1" << std::endl;
std::cout << "My Data 2" << std::endl;
}

这应该是默认行为,但是,它也必须可以传递一些其他的流对象来代替 std::cout,像这样:

void DumpData(std::ostream& Stream = std::cout) const
{
Stream << "My Data 1" << std::endl;
Stream << "My Data 2" << std::endl;
}

现在回答我的问题:

  1. 我应该为参数使用什么正确类型(本例中为 std::ostream&)?
  2. 默认值是多少,可以直接使用= std::cout吗?

另外(3.),在调用这个函数之后,如果我传递自己的流对象,我需要逐行遍历这个流中的所有字符串。实现这一目标的最佳方法是什么?

最佳答案

你为什么不自己试试呢?

这是您的代码 in Colirustd::coutstd::stringstream 为例(明显删除了 DumpDataconstness):

#include <iostream>
#include <sstream>

void DumpData(std::ostream& Stream = std::cout)
{
Stream << "My Data 1" << std::endl;
Stream << "My Data 2" << std::endl;
}
int main() {
DumpData();
std::stringstream ss;
DumpData(ss);
std::string l;
while(std::getline(ss, l)) {
std::cout << l << std::endl;
}
return 0;
}

输出是你所期望的。

关于c++ - 打印到控制台或字符串/流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43001139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com