问题标签 [manipulators]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 类的自定义流操纵器
我正在尝试编写一个简单的审计类,它通过运算符 << 接受输入,并在收到这样的自定义操纵器后编写审计:
我认识到我的代码中的重载运算符不会返回流对象,但我想知道是否仍然可以使用类似语法的操纵器。目前,编译器将“<<”视为二进制右移运算符。
感谢您的任何意见,帕特里克
c++ - C++ - 如何重置输出流操纵器标志
我有一行代码在我的输出中将填充值设置为“-”字符,但需要将 setfill 标志重置为其默认的空白字符。我怎么做?
我认为这可能有效:
我在错误的轨道上吗?
c++ - 自定义 C++ 操纵器问题
我正在尝试在我的日志记录类中实现我自己的流操纵器。它基本上是改变标志状态的端线操纵器。但是,当我尝试使用它时,我会得到:
...
代码:
当我尝试调用它时出现错误:
(log 是指向 Log 对象的指针)
有任何想法吗?我怀疑这与机械手实际上在课堂上的事实有某种联系,但这只是我的疯狂猜测......
干杯,
汤姆
编辑:由于限制格式,将其放在这里而不是评论。我尝试实现我的 streambuf,它运行良好,但有一个例外:当我尝试打开 filebuf 进行追加时,它失败了。输出效果很好,只是由于某些未知原因而没有附加。如果我尝试直接使用 ofstream 和 append 它可以工作。知道为什么吗?– 作品:
正确附加“测试”。
不起作用:
抛出异常,如果我将 openmode 设置为 out 那么它可以工作..
干杯
c++ - std::endl 的重载处理?
我想定义一个类MyStream
,以便:
给出输出
基本上,我想在前面插入一个“[blah]”,然后在每个非终止 std::endl
之后插入?
这里的困难不是逻辑管理,而是检测和重载std::endl
. 有没有一种优雅的方式来做到这一点?
谢谢!
编辑:我不需要关于逻辑管理的建议。我需要知道如何检测/重载打印std::endl
.
c# - 用于编写机器人任务脚本的 XML 方言
在我的下一个项目中,我将不得不实施一个自动化解决方案来测试硬件设备。基本上,该测试涉及工业机械臂拾取要测试的设备,将其固定在某个指定位置,然后使用一系列其他设备(例如电机和传感器)来锻炼要测试的产品的多个区域。
因此,我的测试自动化解决方案需要与多个控制器进行通信,要么发出驱动命令,要么从传感器获取信息。
想到的第一个想法是用自定义 XML 语言定义每个控制器的步骤顺序。在这种语言中,我需要定义诸如“MOVE”、“IF”、“WAIT”、“SIGNAL”等原语。这些原语将用于定义每个控制器的操作脚本。每个控制器异步运行,但最终会同步,因此需要“WAIT”和“SIGNAL”之类的东西。
我在谷歌上做了一个基本的搜索,我唯一能找到的是非常古老的东西(我不需要遵守工业标准,这是一个小企业)或为其他东西设计的 XML 方言。
问题是——您知道我可以使用任何 XML 标准来代替创建自己的标准吗?
编辑:我目前正在研究一种看起来很有希望的 NASA 计划执行语言。名称是PLEXIL。如果有人对此有所了解,请随时做出贡献。
c++ - 如何使用操纵器用填充的左零格式化我的十六进制输出
下面的小测试程序打印出来:
而SS号IS =3039
我希望用填充的左零打印出数字,使总长度为 8。所以:
和 SS 编号 IS =00003039(注意左侧填充的额外零)
我想知道如何使用操纵器和字符串流来做到这一点,如下所示。谢谢!
测试程序:
c++ - 为特定类创建 ostream 操纵器
我有一个从 ostream 派生的类:
我想制作一个专门针对此类的操纵器(例如do_something
),如下所示:
我做了以下事情:
这有效,但相当难看。我尝试了以下方法:
这行不通。我还尝试了另一种方法:
这仍然行不通。
c++ - ostream showbase 不显示零值的“0x”
PSPS:( 一个预先编写好的后脚本)
它刚刚想到一个更有先见之明的问题将包括以下概念:对于零值整数,这种不显示“0x”(showbase)是否是一种标准行为,还是只是我的 MinGW 实现的一个怪癖?
这一切都始于一个愉快的星期天早上......我想以十六进制表示形式转储一些句柄,并以一致的格式化方式。
我想要一个前导 0x和一个固定宽度,但使用预期的流操纵器证明这是难以捉摸的。
我发现这样做的唯一方法是将句柄转换为无符号长整数。这似乎有点不合理,我希望我不是唯一一个想要这个的人。
我在标准的十六进制操纵器中遗漏了什么吗?是因为 void* (HANDLE) 类型只是在 ostream 的正常十六进制处理之外定义的吗?
总结:我不想将 HANDLE 强制转换为它不是的东西。
而且我不想硬编码“0x”前缀。有没有办法使用标准机械手来做到这一点?还是我需要重载 ostream 对 HANDLE 的处理?(但这可能会让我超负荷!)
这是我的测试代码(及其输出)。
我用过'。为清楚起见,作为填充字符(我实际上将使用“0”)
c++ - ignore punctuation using manipulator
Is it possibile to ignore punctuacion using std manipulator on cin? For example suppose you have an input stream (in the actual case a file) like: "one, two three". I want to be able to do:
at the end a=="one"
, b=="two"
, c=="three"
.
c++ - 简单的 wostream 日志记录类(带有自定义流操纵器)
我一直在阅读大量的问题、文章和文档,但我还没有找到解决问题的方法。
我想创建一个用于调试的简单类。其最终结果将允许我做这样的事情:
有了在记录器类中我可以切换这些东西是否进入控制台/调试文件的想法。
我有一个骨架,但我无法让操作员重载以使操纵器工作。
这是 Logger.h:
和 Logger.cpp:
和 main.cpp:
这种混乱在VS2005中产生以下错误:
“错误 C2679:二进制 '<<':未找到采用 'doSetState' 类型的右侧操作数的运算符(或没有可接受的转换)”
任何帮助是极大的赞赏。
谢谢!