问题标签 [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++ 演示 noskipws
我在 C++ 中尝试 noskipws 操纵器,并编写了以下代码。
我期望以下输出:
预期产出
输出
我修改了这段代码以使其适用于这样的字符,并且效果很好。
我知道 cin 是如何工作的,但我无法弄清楚为什么在string
.
c++ - 为什么 C++ 流操作符没有调用操作符?
我想知道:如果 examplestd::endl
是一个常规函数,那么为什么它缺少调用运算符(the operator()
)?
我知道它被设计为与插入(<<
)和提取(>>
)运算符一起使用。我试着这样称呼它:
但这当然没有用。
c++ - 如何将 std::endl 传递给函数并使用它?
我想弄清楚如何将操纵器传递std::endl
给函数,然后在函数中使用传入的操纵器。我可以这样声明函数:
我可以这样称呼它:
没关系。我的问题是弄清楚如何使用里面的机械手f
。这不起作用:
无论编译器如何,错误消息归结为编译器无法确定operator<<
调用哪个。我需要在内部修复什么f
才能编译我的代码?
c++ - C++ 中的流操纵器如何成为函数?
在 C++ 中调用函数时,会在后面写上函数名,()
以将其区分为函数调用。为什么我不能以相同的方式调用流操纵器函数?
为什么不允许这样做?:
不是endl
变量持有\n
吗?
谢谢!
c++ - iostream 操纵器通过 xalloc/iword 还是通过派生类?
我需要实现一个 C++ iostream 操纵器。在这里和那里阅读似乎人们使用两种方式
使用
ios_base::xalloc
和ios_base::iword
从 iostream 实现派生类,如下例所示。
我喜欢第二种方式,但与第一种方式相比,它可能有我看不到或无法理解的缺点。
我在C++ iostream 的自定义操纵器这篇文章中找到了方法 #2 的一个非常好的实现。
在我看来,它xalloc and iword
更习惯于为我的自定义流存储一些自定义内部状态,以便在某个时候使用。
c++ - 自定义流操纵器
我有一个CFileManagerOStream
继承自的自定义流std::ostream
,它从网络流类中获取 Unicode UTF16 或 UTF32 字符串,CTcpStream
并将它们作为 UTF8 字符串存储在磁盘上。这些字符串可能太大(可能是多个 TB),无法在内存中转换为 UTF8,所以我认为我需要为这项工作实现一个 C++ 流操纵器。我发现的所有操纵器示例都采用整个字符串并对其进行处理,由于内存要求低,在我的情况下不会这样做。我已经准备好所有 Unicode 转换代码,我要解决的问题是使用尽可能少的内部存储器进行转换。
我希望像这样使用机械手;
这是可能的还是我错误地接近这个?
c++ - C++缩进输出类继承ofstream
所以我想写一个可以像这样使用的缩进输出类:
这将输出:
所以 IndS 会打印出当前缩进并增加缩进,Ind 会打印出当前缩进,而 IndE 会减少缩进并打印出当前缩进。我试图像这样创建它:
所以我认为这有几个问题:
它不编译。
no match for 'operator<<' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}' and '<unresolved overloaded function type>') ofs << Ind; candidates are:
诸如此类的错误我不会覆盖所有构造函数。有没有办法做到这一点?我想我只需要重写所有的构造函数
IndentText = " ";
并委托重载的构造函数
有人可以帮我解决这个问题吗?谢谢!
c++ - 处理 iostream 操纵器和 ANSI 控制台颜色代码
我正在使用 ANSI 颜色代码在 Unix 控制台中格式化我的输出。
但是,当使用std::setw
或等操纵器std::left
时,结果会受到颜色代码的影响,因为它是一堆字符。
我应该如何处理这个问题?有没有办法让流操纵器忽略颜色代码?
c++ - 是否存在不涉及 i/o 流的 mingw 库本地字符串操作的方法
我正在尝试构建某种格式的序列号。该号码将被输入数据库。在这一点上,我不得不使用 sprintf,但我想要一个原生的 C++ 方法。
这是示例代码:
整数将是 1 到 3 位之间的任意位置。格式需要如下所示:
001, ... 013, ... 101, ... 等等。
“序列号”的格式为:
AAAAA001, ... AAAA013, ... AAAA101 等
所以问题是,有没有一种方法可以做到这一点,它是 C++ 原生的,而不必使用 iostream 操纵器,并且包含在 mingw-w64 库中。或者它是否需要诸如 boost 库之类的东西?
另一种说法:在 C++ 中是否有 C sprintf 函数的替代品?
根据评论编辑:
所以没有什么比......
我意识到这不起作用,但无论如何它给出了想法。有没有办法用服务于sprintf功能的方法直接对字符串类对象进行操作?