问题标签 [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++ - 用于读取双精度的 istream 操纵器
我需要14.3925125E
从 istringstream 中读取数字作为格式化输入的一部分。E
意思是东方,不是科学记数法。
当我尝试使用input >> double >> char
它时,看起来流将数字视为错误的科学并且失败了。我尝试了机械手std::fixed
,std::dec
但没有帮助。还有什么我可以用的吗?
c++ - 类的自定义操纵器
我正在尝试编写带有参数的流操纵器。我有 3 个 int 的 CDate(年、月、日)的课程。所以我需要制作 manipulator date_format(const char*)
。例如:
输出将是:
我想我需要用那个
但我不知道怎么做。
c++ - pword() 值被另一个流修改
os.pword (index)方法应该返回由自定义操纵器指定的当前日期格式。但是, pword()的结果会被不同的流通过它的str(string)方法修改。
类方法:
是什么导致了这种行为,可以采取哪些措施来避免这种行为?
c++ - C++ 操纵器
我已经开始学习C++,我认为这门语言很棒,但在我学习 C++ 的过程中,几乎没有什么让我感到困惑。在这个例子中:
在这个例子中,如果我只输入without ,为什么setiosflags(ios::...)
程序仍然执行相同的操作时我们要输入整体?showpoint
setiosflags
我的第二个问题很简单。如果我们有以下情况:
int
如果我们稍后将其更改为与 不同的值,为什么要定义一个值0
?
c++ - 模板,'out << "("' 中的 'operator<<' 不匹配
我正在尝试为模板重载 << 运算符,但出现此错误。
我想要实现的是重载运算符<<,它将提供左括号,所有标签项由“,”分隔,右括号为“out”。
这是我的代码的一部分:
最糟糕的是,我的构建日志为我提供了 230 条错误行,此时我有点困惑。
c++ - 如何在使用 cout 时创建一个操作文本的类?
我想创建一个在每个字符之间延迟的操纵器,就像我写的一样
它应该输出'H'然后是睡眠(40),'e'然后是睡眠(40),'l'然后是睡眠(40)等等,我试图为此编写一个类,这是我的代码:
当我尝试使用此代码时出现错误,我觉得我必须从头开始重写它。我希望你知道如何实现这个延迟课程,因为我尽我所能,但它不起作用。感谢您阅读本文,希望您能帮助我<3
c++ - 调用操纵 ostream 的函数不需要括号。C++
我知道没有括号就不能调用函数,但是,假设我有这段源代码:
左移运算符没有任何重载,但是当我test(ostream& os)
在cout
at函数中调用该函数时main
,它不需要任何括号。我的问题是为什么?
c++ - 在 C++ 中使用流操纵器解析 std::uint 类型
我正在尝试使用流操纵器解析文件。但是,由于std::uint8_t
, std::uint16_t
, std::uint32_t
from的 operator>> 重载<istreams>
是一个格式化的输入函数,它会读取一个字符串,并在必要时将其转换为一个数字。所以它会解析23
为23
而不是二进制00000010 00000011
表示515
。
您可以使用以下inputstream.read()
方法执行此操作reinterpret_cast<>
:
is.read(reinterpret_cast<char*>(data), sizeof(*data));
现在我的问题 - 是否可以实现覆盖 >> 运算符的默认行为,以便我可以使用 >> 运算符读取此类 std:uint 类型?我将如何实现它以及如何在运营商之间切换?如果不可能,您是否知道实现流操纵器进行解析的好方法?
c++ - 可以轮询标准 C++ iostream 操纵器的状态吗?
在为 iostream << 运算符编写重载时,尤其是在应用程序类上,可能需要根据对该流对象有效的标准操纵器来更改该重载的行为。可以从 << 重载的实现中轮询流的标准操纵器的状态吗?
例如,它可能是可取的
表现得不同于
除了差异之外,<< 的自定义重载可能会在其实现中移交给成员 <<'s。
如果可以轮询 iostream 的操纵器状态,这是如何实现的?另外,实现自定义操纵器的人应该怎么做才能同样轮询其操纵器的状态?
c++ - 操纵器是否以某种方式转换流类型?
我正在尝试使用匿名ostringstream
来生成string
:Use 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 tostd::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 流错误,还是我所做的实际上是非法的?