C++ - 将一个 ostream 中的数据发送到另一个 ostream

2023-11-29

我不明白这个 ostream 函数声明的含义:

ostream& operator<< (ostream& (*pf)(ostream&));

(具体来说,(*pf)(ostream&)部分)。我想做类似的事情:

void print(ostream& os){
    cout << os;
}

但我收到错误:

 Invalid operands to binary expression ('ostream' . . . and 'ostream')

我不明白这个 ostream 函数声明的含义:

ostream& operator<< (ostream& (*pf)(ostream&));

你见过类似的函数吗std::endl, std::flush, std::hex, std::dec, std::setw...?它们都可以使用“ostream& (*pf)(ostream&)上面的参数,并且该运算符是允许使用它们的运算符。如果我们看一下 Visual C++ 实现...

 _Myt& operator<<(_Myt& (__cdecl *_Pfn)(_Myt&))
 {
      return ((*_Pfn)(*this));
 }

...您可以看到是否只是调用该函数,并传递它所使用的流作为参数。这些函数预计返回对同一流参数的引用,以便进一步<<操作可以是链接的,或者流可以隐式转换为bool作为流状态的测试。

See http://en.cppreference.com/w/cpp/io/manip有关 io 操纵器的更多信息。

您需要以下方面的帮助:

void print(ostream& os){
    cout << os;
}

这里的问题是您要发送ostream另一个流的参数 -cout- 它不知道你想用它做什么。

发送当前content of os to cout, try:

void print(ostream& os){
    cout << os.rdbuf();
}

或者,如果您想将一些实际数据打印到参数表示的流中:

void print(ostream& os){
    os << "show this!\n";
}

print(std::cout);   // to write "show this!\n" to `std::cout`
print(std::cerr);   // to write "show this!\n" to `std::cerr`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ - 将一个 ostream 中的数据发送到另一个 ostream 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string

随机推荐

  • 从 Flask 视图发送 WebSocket 消息

    我正在尝试制作一个使用 WebSockets 的 Flask 应用程序 这来自 Flask socket 的示例可行 但我如何从常规视图发送消息 与 Flask SocketIO 的使用方式类似 emit and send 方法 在下面的示
  • Google::protobuf + boost::asio 失败

    我研究了现有的例子 使用 boost asio 发送 Protobuf 消息 使用 boost asio read async 读取 Protobuf 对象 Google Protocol Buffers C 的 parseDelimite
  • 移动刻度标签JavaFx 2

    是否可以将刻度标签移动 移动到图表中 目前我看到隐藏 显示刻度标签的 API 是否有可以在图表内移动刻度标签的 API 如果没有 API 那么我可以使用 应用某种技术来完成此任务吗 当前代码 public class Graph exten
  • 将强度点数组转换为标记

    所以我有这个代码 热图已经添加 但现在我需要为每个具有强度点的地方添加标记 我有纬度和经度以及强度 我还想使用该标记显示数据 我有这段代码 但无法为每个强度点添加标记并显示数据 div style width 100 height 600p
  • 在播放 m3u8 文件期间,ACodec 对 OMX_GetExtensionIndex 的调用失败

    这在某种程度上是问题的后续 m3u8 文件无法在 Android 模拟器中播放 我遇到了与那里提出的问题非常相似的问题 但是使用了 JB 已移植到的真实设备 项目详细信息位于 http groups google com group ren
  • 双感叹号? [复制]

    这个问题在这里已经有答案了 可能的重复 是什么 JavaScript 中的 不是 not 运算符 是什么意思啊 JavaScript 中的运算符 双感叹号 是什么意思 所以我正在调试一些代码并遇到了这个 var foo bar 0 this
  • 对列表的一部分进行适当排序

    假设我们有一个列表 a 4 8 1 7 3 0 5 2 6 9 现在 a sort 将就地对列表进行排序 如果我们只想排序怎么办a part列表中的内容 还在吗 在 C 中我们可以这样写 int array 4 8 1 7 3 0 5 2
  • Google Sheets SUM() 不返回零,而是返回一个极小的数字? [复制]

    这个问题在这里已经有答案了 我有一个包含以下值的 Google 表格 12 4840 8 1870 0 9630 3 3210 3 4550 0 3140 3 3470 7 1290 If I SUM 这些 预期结果是0 零 但事实并非如此
  • 如何从android中另一个项目的活动调用一个项目的活动?反之亦然?

    我正在做一个集成项目 其中涉及将两个项目集成为一个 我想要做到这一点的是 我有一个公共项目 这个公共项目的活动应该能够调用其他两个项目的活动 根据不同像按下特定按钮等事件 我该怎么做 可以通过意图吗 另外 其他两个项目的活动应该能够相互调用
  • 为什么公开 List 被认为是不好的? [复制]

    这个问题在这里已经有答案了 根据 FXCop 的说法 List 不应在 API 对象模型中公开 为什么这被认为是不好的做法 我同意丛林中的驼鹿 List
  • Angular 和 Laravel

    如何在 XAMPP 上设置 Laravel 和 Angular js 文件夹结构 我了解创建一个 RESTFULL Laravel API 我一直在开发一个应用程序 但是当我在浏览器中输入类似 contacts john 的地址时 我会得到
  • -webkit-animation-play-state 在 Chrome 中不起作用

    我设置了一个简单的 JSFiddle 来说明问题 暂停状态在哪里 谁能告诉我为什么 Safari 按预期显示动画元素处于暂停状态 但在 Chrome 中动画正在运行 我正在使用 Chrome 33 0 1750 146 想知道这是否是最新版
  • 使用 gradle eclipse 插件指定 JRE 容器

    即使当属性为sourceCompatibility and targetCompatibility设置为特定的 JRE 版本 类路径条目将为JRE CONTAINER只能生成为
  • WiX:更改目录的路径不会更改子目录的路径?

    我有一个 WiX 安装程序 其中包含以下目录声明
  • nmake 致命错误 U1034:语法错误:分隔符丢失

    gnsdk C wrapper sample makefile CC Csc exe CP cp GNSDK LIB PATH lib GNSDK PLATFORM GNSDK WRAPPER LIB PATH lib GNSDK PLAT
  • 如何使用 Alamofire 在多部分表单数据中追加数组?

    I am uploading image with multipart form data using Alamofire but getting some problem while i am passing an array as pa
  • Javascript,单击按钮时增加计数器

    在javascript中 我想制作一个计数器 当您单击按钮时该计数器会增加值 当我第一次单击添加按钮时 数字不会增加 但是当我将值打印到控制台时 结果会增加 小提琴 http jsfiddle net techydude H63As fun
  • 更好的(非线性)分箱

    我问的最后一个问题涉及如何通过 x 坐标对数据进行装箱 解决方案简单而优雅 我很遗憾我没有看到它 这个问题可能更难 或者我可能只是盲目的 我从大约 140000 个数据点开始 将它们分成 70 个沿 x 轴均匀分布的组 然后获取每组的平均位
  • 获取 Woocommerce 3 中的产品价格

    我正在尝试在我制作的函数中获取没有货币的价格 function add price widget global woocommerce product new WC Product get the ID thePrice product g
  • C++ - 将一个 ostream 中的数据发送到另一个 ostream

    我不明白这个 ostream 函数声明的含义 ostream operator lt lt ostream pf ostream 具体来说 pf ostream 部分 我想做类似的事情 void print ostream os cout