问题标签 [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 投票
2 回答
61 浏览

c++ - C++ 表达式中尾随流操作符的含义

每对的两个表达式有什么区别?我不明白std::dec这些表达式末尾的尾随效果。

cin, 在这之间:

和这个 :

同样的问题cout,在这之间:

和这个 :

谢谢 !

0 投票
2 回答
188 浏览

c++ - iostreams 操纵器命令

我不理解以下表达式中的逻辑,尽管它工作得很好:

前面的代码正确输出了我的期望:hello there.

我的逻辑是:

但它输出了一些意想不到的东西:hellothere.我的期望是“there”的第一个字符“t”位于输出区域的第 7 列,即 6 列宽度之后。换句话说,我的概念是“left setw(n)”应该表示“从输出区域的第一个列开始的 n 列(空格)”,就像一些带有编号列的数据表单,以便于查找数据。

你能解释一下吗?

0 投票
2 回答
860 浏览

c++ - 制作自定义 istream 操纵器

我想制作一个自定义istream操纵器,它从输入中读取 2 个字符,然后从输入中跳过 2 个字符,并一直这样做直到它用完任何输入。

例如,如果我有这样的代码:

我的操纵器在哪里skipchar,如果用户输入1122334455str应该包含113355.

这是我到目前为止所得到的,我不知道我应该在 while 循环条件中放入什么才能使这段代码正常工作:

任何帮助,将不胜感激。

0 投票
3 回答
1277 浏览

c++ - 计算用户输入的字符串中的单词

所以我正在为作业的最后一章做一些复习题。

我的问题是,如果用户输入一个字符串句子,我将如何计算单词的数量?我不认为它在课堂上讲过,或者将在课堂上讲过。

我已经请求句子并使用 getline 读取字符串,但是除了将输入写入文件、打开同一个文件并以这种方式计算单词之外,我将如何计算单个单词呢?

0 投票
1 回答
153 浏览

stream - 重载流操作符

嗨,我正在尝试重载 operator<< 以挂钩

如果我不需要输出,则避免附加 '\n' 。我已经超载了:

但是通话总是在 basic_ostream 结束

0 投票
1 回答
854 浏览

c++ - 带参数的 C++ 操纵器

我正在尝试用一个整数参数实现一个操纵器。除了一点点不同,我认为我所做的正是本指南这个问题中所说的。唯一的区别是我的操作员是一个成员而不是一个自由函数。

我将把我的代码的相关部分放在这里。一些运算符和其他内部例程将被省略以保持代码清洁。见下文:

主文件

显示.h

显示.cpp

编译器返回此错误消息:

“'operator<<' 不匹配(操作数类型为 'Display' 和 'manip')”

有人可以告诉我我做错了什么吗?

0 投票
3 回答
1518 浏览

c++ - 为什么 std::uppercase 不适用于字符串?

一段时间以来,我一直在使用机械手,但并没有完全理解它们是如何工作的。

这段代码:

或者这样:

两者都输出:

但是,以下代码行都不能将字符串“abcd”转换为大写。为什么?

另一个问题是为什么showbase并且uppercase必须在std::ios::内部限定std::setiosflags()且仅std::在该功能外部限定?

最后,为什么std::hex里面不能接受std::setiosflags()

谢谢

0 投票
4 回答
1725 浏览

c++ - 如何编写自己的操纵器?

假设我想为输入和输出编写自己的操纵器。

或者

我想要 mymanip 做的是切换我从输入中读取的字符并将结果分配给一个字符串。

所以,如果我输入“QwErTy”,我会在字符串中得到“qWeRtY”。

这是具有一个功能的非常基本的任务,但我想了解更多关于操纵器的信息。

有人可以提供线索吗?

谢谢你。

0 投票
1 回答
96 浏览

c++ - 自定义操纵器使用 Visual C++ 编译,但不是 g++/clang

我有一个记录器类QueuedLog,它对日志消息进行排队,并在需要时将队列中的所有日志消息插入到一个std::ostreamif 中。为了分隔每条日志消息,我编写了一个名为的操纵器endm,其使用方式与std::endl. 例如,这是一个用例:

我的代码使用 Visual C++ 编译得很好,但是当我尝试使用endm操纵器时 g++ 和 clang++ 编译失败。这是一个最小版本的QueuedLog(通常位于一个单独的头文件中),用一个小例子来说明问题:

或者,这个(可能过度)简化的例子:

我试图在rextester用所有三个编译器编译它,但它只能用 Visual C++ 成功编译。

g++ 给出以下错误:

error: ‘endm’ was not declared in this scope

来自 clang++ 的错误信息类似:

error: use of undeclared identifier 'endm'

为什么这在 Visual C++ 中有效,但在 g++ 或 clang++ 中无效?如何为 g++/clang++ 修复它?该解决方案不需要同时在所有三个编译器中工作,我只想知道如何为 g++ 和 clang++ 修复它。

0 投票
2 回答
542 浏览

c++ - 如何正确实现 C++ 流操作器 endl?

我正在尝试为我的stream班级实现一个操纵器。我对操纵器了解不多,但我认为我做的一切都是正确的。代码的相关部分如下:

我不知道我做错了什么,但不是调用endl编译器而是调用stream::operator<<(bool). 任何的想法?