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

c++ - 用于读取双精度的 istream 操纵器

我需要14.3925125E从 istringstream 中读取数字作为格式化输入的一部分。E意思是东方,不是科学记数法。
当我尝试使用input >> double >> char它时,看起来流将数字视为错误的科学并且失败了。我尝试了机械手std::fixedstd::dec但没有帮助。还有什么我可以用的吗?

0 投票
4 回答
1715 浏览

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

我正在尝试编写带有参数的流操纵器。我有 3 个 int 的 CDate(年、月、日)的课程。所以我需要制作 manipulator date_format(const char*)。例如:

输出将是:

我想我需要用那个

但我不知道怎么做。

0 投票
1 回答
54 浏览

c++ - pword() 值被另一个流修改

os.pword (index)方法应该返回由自定义操纵器指定的当前日期格式。但是, pword()的结果会被不同的流通过它的str(string)方法修改。

类方法:

是什么导致了这种行为,可以采取哪些措施来避免这种行为?

0 投票
3 回答
472 浏览

c++ - C++ 操纵器

我已经开始学习C++,我认为这门语言很棒,但在我学习 C++ 的过程中,几乎没有什么让我感到困惑。在这个例子中:

在这个例子中,如果我只输入without ,为什么setiosflags(ios::...)程序仍然执行相同的操作时我们要输入整体?showpointsetiosflags

我的第二个问题很简单。如果我们有以下情况:

int如果我们稍后将其更改为与 不同的值,为什么要定义一个值0

0 投票
1 回答
59 浏览

c++ - 模板,'out << "("' 中的 'operator<<' 不匹配

我正在尝试为模板重载 << 运算符,但出现此错误。

我想要实现的是重载运算符<<,它将提供左括号,所有标签项由“,”分隔,右括号为“out”。

这是我的代码的一部分:

最糟糕的是,我的构建日志为我提供了 230 条错误行,此时我有点困惑。

0 投票
1 回答
56 浏览

c++ - 如何在使用 cout 时创建一个操作文本的类?

我想创建一个在每个字符之间延迟的操纵器,就像我写的一样

它应该输出'H'然后是睡眠(40),'e'然后是睡眠(40),'l'然后是睡眠(40)等等,我试图为此编写一个类,这是我的代码:

当我尝试使用此代码时出现错误,我觉得我必须从头开始重写它。我希望你知道如何实现这个延迟课程,因为我尽我所能,但它不起作用。感谢您阅读本文,希望您能帮助我<3

0 投票
2 回答
163 浏览

c++ - 调用操纵 ostream 的函数不需要括号。C++

我知道没有括号就不能调用函数,但是,假设我有这段源代码:

左移运算符没有任何重载,但是当我test(ostream& os)coutat函数中调用该函数时main,它不需要任何括号。我的问题是为什么?

0 投票
2 回答
266 浏览

c++ - 在 C++ 中使用流操纵器解析 std::uint 类型

我正在尝试使用流操纵器解析文件。但是,由于std::uint8_t, std::uint16_t, std::uint32_tfrom的 operator>> 重载<istreams>是一个格式化的输入函数,它会读取一个字符串,并在必要时将其转换为一个数字。所以它会解析2323而不是二进制00000010 00000011表示515

您可以使用以下inputstream.read()方法执行此操作reinterpret_cast<>

is.read(reinterpret_cast<char*>(data), sizeof(*data));

现在我的问题 - 是否可以实现覆盖 >> 运算符的默认行为,以便我可以使用 >> 运算符读取此类 std:uint 类型?我将如何实现它以及如何在运营商之间切换?如果不可能,您是否知道实现流操纵器进行解析的好方法?

0 投票
1 回答
123 浏览

c++ - 可以轮询标准 C++ iostream 操纵器的状态吗?

在为 iostream << 运算符编写重载时,尤其是在应用程序类上,可能需要根据对该流对象有效的标准操纵器来更改该重载的行为。可以从 << 重载的实现中轮询流的标准操纵器的状态吗?

例如,它可能是可取的

表现得不同于

除了差异之外,<< 的自定义重载可能会在其实现中移交给成员 <<'s。

如果可以轮询 iostream 的操纵器状态,这是如何实现的?另外,实现自定义操纵器的人应该怎么做才能同样轮询其操纵器的状态?

0 投票
1 回答
63 浏览

c++ - 操纵器是否以某种方式转换流类型?

我正在尝试使用匿名ostringstream来生成stringUse an Anonymous Stringstream to Construct a String

但是,当我使用操纵器时,我似乎无法再编译:

但即使在 gcc 5.1 中似乎也不允许这样做:

prog.cpp: In function int main():
prog.cpp:8:109: error: no matching function for call to std::basic_ostringstream<char>::basic_ostringstream(std::basic_ostream<char>&)
const auto myString(static_cast<ostringstream>(ostringstream{} << setfill('!') << setw(13) << "lorem ipsum").str());


In file included from /usr/include/c++/5/iomanip:45:0,
from prog.cpp:1:
/ usr/include/c++/5/sstream:582:7: 注意:候选
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::basic_ostringstream<_CharT, _Traits, _Alloc>&&)[with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]
basic_ostringstream(basic_ostringstream&& __rhs)

/usr/include/c++/5/sstream:582:7: 注意:没有已知的参数 1 从std::basic_ostream<char>std::basic_ostringstream<char>&&
/usr/include/c++/5/sstream:565:7 的转换:注意:候选:
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(const __string_type&, std::ios_base::openmode)[with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::basic_ostringstream<_CharT, _Traits, _Alloc>::__string_type = std::basic_string<char>; std::ios_base::openmode = std::_Ios_Openmode]
basic_ostringstream(const __string_type& __str,

/usr/include/c++/5/sstream:565:7: 注意:没有已知的参数 1 从std::basic_ostream<char>const __string_type& {aka const std::basic_string<char>&}
/usr/include/c++/5/sstream:547:7 的转换:注意:候选:
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::ios_base::openmode)[with_CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::ios_base::openmode = std::_Ios_Openmode]
basic_ostringstream(ios_base::openmode __mode = ios_base::out)

/usr/include/c++/5/sstream:547:7: 注意:没有已知的参数 1 从std::basic_ostream<char>到的转换std::ios_base::openmode {aka std::_Ios_Openmode}

这是另一个 gcc 流错误,还是我所做的实际上是非法的?