【发布时间】:2026-01-31 16:45:01
【问题描述】:
我需要一个将一些文本数据(多行)转储到控制台的 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;
}
现在回答我的问题:
- 我应该为参数使用的正确类型是什么(本例中为
std::ostream&)? - 默认值是多少,可以直接用
= std::cout吗?
另外(3.),在调用这个函数之后,如果我传递我自己的流对象,我需要逐行迭代这个流中的所有字符串。实现这一目标的最佳方法是什么?
【问题讨论】:
-
std::ostream&和while(std::getline(stream, line)) {...}。 -
问题 #1:嗯,您将它用作输出流,所以,是的,它似乎是正确的。问题 #2 可以通过尝试编译来回答。