gpt4 book ai didi

c++ - iostream 和 stringstream 的方法参数

转载 作者:行者123 更新时间:2023-11-28 07:08:58 25 4
gpt4 key购买 nike

我想将一个流参数输入到一个方法中,该方法可以是 <stringstream><iostream>如:

void method(? out); // or
void method(? in);

如果?<istream><ostream>这很简单。我不知道的是,如果参数是 <istream> 该怎么办?或 <stringstream>或者是 <ostream><stringstream> .

这可以做到吗?

最佳答案

同时实现 std::istreamstd::ostream 的流,例如,std::stringstreamstd: :fstream 派生自 std::iostream(因为它们都是类模板,所以您会在标准中寻找 basic_...)。也就是说,如果您确实需要一个同时用于输入和输出的流,您将传递一个 std::iostream&

std::iostream 派生自 std::istreamstd::ostream。适当的类型很简单:

  • 只读使用std::istream&
  • 仅用于写入使用 std::ostream&
  • 阅读和写作使用std::iostream&(我不认为我曾经在生产代码中使用过它)

请注意,如果流可能是文件流,则在读写切换时需要查找:在不干预查找的情况下在读写之间切换,即使查找到当前位置,也会导致未定义的行为。

关于c++ - iostream 和 stringstream 的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320857/

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