问题标签 [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++ 表达式中尾随流操作符的含义
每对的两个表达式有什么区别?我不明白std::dec
这些表达式末尾的尾随效果。
与cin
, 在这之间:
和这个 :
同样的问题cout
,在这之间:
和这个 :
谢谢 !
c++ - iostreams 操纵器命令
我不理解以下表达式中的逻辑,尽管它工作得很好:
前面的代码正确输出了我的期望:hello there.
我的逻辑是:
但它输出了一些意想不到的东西:hellothere.
我的期望是“there”的第一个字符“t”位于输出区域的第 7 列,即 6 列宽度之后。换句话说,我的概念是“left setw(n)”应该表示“从输出区域的第一个列开始的 n 列(空格)”,就像一些带有编号列的数据表单,以便于查找数据。
你能解释一下吗?
c++ - 制作自定义 istream 操纵器
我想制作一个自定义istream
操纵器,它从输入中读取 2 个字符,然后从输入中跳过 2 个字符,并一直这样做直到它用完任何输入。
例如,如果我有这样的代码:
我的操纵器在哪里skipchar
,如果用户输入1122334455
,str
应该包含113355
.
这是我到目前为止所得到的,我不知道我应该在 while 循环条件中放入什么才能使这段代码正常工作:
任何帮助,将不胜感激。
c++ - 计算用户输入的字符串中的单词
所以我正在为作业的最后一章做一些复习题。
我的问题是,如果用户输入一个字符串句子,我将如何计算单词的数量?我不认为它在课堂上讲过,或者将在课堂上讲过。
我已经请求句子并使用 getline 读取字符串,但是除了将输入写入文件、打开同一个文件并以这种方式计算单词之外,我将如何计算单个单词呢?
stream - 重载流操作符
嗨,我正在尝试重载 operator<< 以挂钩
如果我不需要输出,则避免附加 '\n' 。我已经超载了:
但是通话总是在 basic_ostream 结束
c++ - 为什么 std::uppercase 不适用于字符串?
一段时间以来,我一直在使用机械手,但并没有完全理解它们是如何工作的。
这段代码:
或者这样:
两者都输出:
但是,以下代码行都不能将字符串“abcd”转换为大写。为什么?
另一个问题是为什么showbase
并且uppercase
必须在std::ios::
内部限定std::setiosflags()
且仅std::
在该功能外部限定?
最后,为什么std::hex
里面不能接受std::setiosflags()
谢谢
c++ - 如何编写自己的操纵器?
假设我想为输入和输出编写自己的操纵器。
或者
我想要 mymanip 做的是切换我从输入中读取的字符并将结果分配给一个字符串。
所以,如果我输入“QwErTy”,我会在字符串中得到“qWeRtY”。
这是具有一个功能的非常基本的任务,但我想了解更多关于操纵器的信息。
有人可以提供线索吗?
谢谢你。
c++ - 自定义操纵器使用 Visual C++ 编译,但不是 g++/clang
我有一个记录器类QueuedLog
,它对日志消息进行排队,并在需要时将队列中的所有日志消息插入到一个std::ostream
if 中。为了分隔每条日志消息,我编写了一个名为的操纵器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++ 修复它。
c++ - 如何正确实现 C++ 流操作器 endl?
我正在尝试为我的stream
班级实现一个操纵器。我对操纵器了解不多,但我认为我做的一切都是正确的。代码的相关部分如下:
我不知道我做错了什么,但不是调用endl
编译器而是调用stream::operator<<(bool)
. 任何的想法?