问题标签 [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.

0 投票
4 回答
2554 浏览

c++ - 类的自定义流操纵器

我正在尝试编写一个简单的审计类,它通过运算符 << 接受输入,并在收到这样的自定义操纵器后编写审计:

我认识到我的代码中的重载运算符不会返回流对象,但我想知道是否仍然可以使用类似语法的操纵器。目前,编译器将“<<”视为二进制右移运算符。

感谢您的任何意见,帕特里克

0 投票
5 回答
33649 浏览

c++ - C++ - 如何重置输出流操纵器标志

我有一行代码在我的输出中将填充值设置为“-”字符,但需要将 setfill 标志重置为其默认的空白字符。我怎么做?

我认为这可能有效:

我在错误的轨道上吗?

0 投票
3 回答
1615 浏览

c++ - 自定义 C++ 操纵器问题

我正在尝试在我的日志记录类中实现我自己的流操纵器。它基本上是改变标志状态的端线操纵器。但是,当我尝试使用它时,我会得到:

...

代码:

当我尝试调用它时出现错误:

(log 是指向 Log 对象的指针)

有任何想法吗?我怀疑这与机械手实际上在课堂上的事实有某种联系,但这只是我的疯狂猜测......

干杯,

汤姆

编辑:由于限制格式,将其放在这里而不是评论。我尝试实现我的 streambuf,它运行良好,但有一个例外:当我尝试打开 filebuf 进行追加时,它失败了。输出效果很好,只是由于某些未知原因而没有附加。如果我尝试直接使用 ofstream 和 append 它可以工作。知道为什么吗?– 作品:

正确附加“测试”。

不起作用:

抛出异常,如果我将 openmode 设置为 out 那么它可以工作..

干杯

0 投票
7 回答
14153 浏览

c++ - std::endl 的重载处理?

我想定义一个类MyStream,以便:

给出输出

基本上,我想在前面插入一个“[blah]”,然后在每个非终止 std::endl之后插入?

这里的困难不是逻辑管理,而是检测和重载std::endl. 有没有一种优雅的方式来做到这一点?

谢谢!

编辑:我不需要关于逻辑管理的建议。我需要知道如何检测/重载打印std::endl.

0 投票
2 回答
223 浏览

c# - 用于编写机器人任务脚本的 XML 方言

在我的下一个项目中,我将不得不实施一个自动化解决方案来测试硬件设备。基本上,该测试涉及工业机械臂拾取要测试的设备,将其固定在某个指定位置,然后使用一系列其他设备(例如电机和传感器)来锻炼要测试的产品的多个区域。

因此,我的测试自动化解决方案需要与多个控制器进行通信,要么发出驱动命令,要么从传感器获取信息。

想到的第一个想法是用自定义 XML 语言定义每个控制器的步骤顺序。在这种语言中,我需要定义诸如“MOVE”、“IF”、“WAIT”、“SIGNAL”等原语。这些原语将用于定义每个控制器的操作脚本。每个控制器异步运行,但最终会同步,因此需要“WAIT”和“SIGNAL”之类的东西。

我在谷歌上做了一个基本的搜索,我唯一能找到的是非常古老的东西(我不需要遵守工业标准,这是一个小企业)或为其他东西设计的 XML 方言。

问题是——您知道我可以使用任何 XML 标准来代替创建自己的标准吗?

编辑:我目前正在研究一种看起来很有希望的 NASA 计划执行语言。名称是PLEXIL。如果有人对此有所了解,请随时做出贡献。

0 投票
3 回答
10371 浏览

c++ - 如何使用操纵器用填充的左零格式化我的十六进制输出

下面的小测试程序打印出来:

而SS号IS =3039

我希望用填充的左零打印出数字,使总长度为 8。所以:

和 SS 编号 IS =00003039(注意左侧填充的额外零)

我想知道如何使用操纵器和字符串流来做到这一点,如下所示。谢谢!

测试程序:

0 投票
1 回答
1300 浏览

c++ - 为特定类创建 ostream 操纵器

我有一个从 ostream 派生的类:

我想制作一个专门针对此类的操纵器(例如do_something),如下所示:

我做了以下事情:

这有效,但相当难看。我尝试了以下方法:

这行不通。我还尝试了另一种方法:

这仍然行不通。

0 投票
2 回答
2128 浏览

c++ - ostream showbase 不显示零值的“0x”

PSPS:( 一个预先编写好的后脚本)
它刚刚想到一个更有先见之明的问题将包括以下概念:对于零值整数,这种不显示“0x”(showbase)是否是一种标准行为,还是只是我的 MinGW 实现的一个怪癖?

这一切都始于一个愉快的星期天早上......我想以十六进制表示形式转储一些句柄,并以一致的格式化方式。
我想要一个前导 0x和一个固定宽度,但使用预期的流操纵器证明这是难以捉摸的。
我发现这样做的唯一方法是将句柄转换为无符号长整数。这似乎有点不合理,我希望我不是唯一一个想要这个的人。
在标准的十六进制操纵器中遗漏了什么吗?是因为 void* (HANDLE) 类型只是在 ostream 的正常十六进制处理之外定义的吗?

总结:我不想将 HANDLE 强制转换为它不是的东西。
而且我不想硬编码“0x”前缀。有没有办法使用标准机械手来做到这一点?还是我需要重载 ostream 对 HANDLE 的处理?(但这可能会让我超负荷!)

这是我的测试代码(及其输出)。
我用过'。为清楚起见,作为填充字符(我实际上将使用“0”)

0 投票
2 回答
1015 浏览

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".

0 投票
3 回答
2008 浏览

c++ - 简单的 wostream 日志记录类(带有自定义流操纵器)

我一直在阅读大量的问题、文章和文档,但我还没有找到解决问题的方法。

我想创建一个用于调试的简单类。其最终结果将允许我做这样的事情:

有了在记录器类中我可以切换这些东西是否进入控制台/调试文件的想法。

我有一个骨架,但我无法让操作员重载以使操纵器工作。

这是 Logger.h:

和 Logger.cpp:

和 main.cpp:

这种混乱在VS2005中产生以下错误:

“错误 C2679:二进制 '<<':未找到采用 'doSetState' 类型的右侧操作数的运算符(或没有可接受的转换)”

任何帮助是极大的赞赏。

谢谢!