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 的相关文章

  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 从 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