问题标签 [ostringstream]
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++ - 为自定义流类设置 std::io_base 标志
我有一个名为 Stream 的自定义类
这是我实际拥有的一个非常基本的例子。我正在尝试设置 std::ios_base 标志,如下所示:
使用运算符;
据我了解,因为 std::hex 返回 std::ios_base 所以它应该调用它并设置流的标志。但它总是调用模板。注意:如果我删除此模板,一切都会像您期望的那样工作,但有没有办法两者兼得?
如果您需要更多说明,请随时进一步询问
c++ - Copy contructor error with no obvious copy
I'm attempting to build a bit of simple logging functionality from scratch, with a stream like '<<' interface, and am running into a bit of compiler issue. Here is the basics of my code:
The errors I'm getting are:
From what I've been able to find so far, the errors are because you can't call the copy constructor on ostringstream. As far as I can tell though, I'm not calling a copy constructor directly, and I'm not copying Buffer, only constructing it in the 'return' statement.
The other interesting thing is that this code compiles fine under Visual Studio 2010 where I knocked it up before integrating it into my application (which is compiled using GCC 4.6.3).
Have I interpreted the issue correctly, and if so - where is the implicit copy, and how do eliminate it?
c++ - ostringstream::write 方法修改输入参数
考虑以下片段,它获取一些二进制数据并将其写入ostringstream
对象:
问题是,两个打印的哈希值彼此不同,这意味着payload
已经改变。stream
我尝试使用二进制模式打开std::ostringstream stream(std::ios::out | std::ios::binary)
打开,它没有任何区别,我没想到它会,无论如何。
另一个事实是,每次我重新运行程序时,我都会从第二个打印语句中得到不同的校验和。第一个哈希总是相同的。
现在,如何将二进制数据正确写入 ostringstream?问题可以转换为const char*
(GetData
方法将 anunsigned char**
作为第一个参数)吗?
更新:根据评论,这里有更多解释:
- 比较原始数据和写入数据的二进制差异,我看到写入的数据在某些地方向右移动(24 字节)。它在开始时还添加了一些字节。我仍然认为这与演员阵容有关。
GetData
和实际编写之间没有更多的代码。- GetData 工作正常,因为调用它后的校验和是正确的(我知道校验和应该是什么)。
- 我无法发布可编译的代码,因为
GetData
. 而且没有必要,我已将问题隔离到write
被调用的行。 - 系统详细信息为: Ubuntu 12.04 64bit 上的 gcc 版本 4.6.3
c++ - ostringstream 打破常规?
我想将 a 的内容输出ostringstream
到其他流(例如std::cout
)。我知道我可以使用std::ostringstream::str()
,但我认为将流内容复制到字符串然后再复制到另一个流会有开销。我发现我可以使用std::ostringstream::rdbuf()
(评论建议有 25 票)。但它会中断std::cout
,如下面的测试程序的输出所示。难道我做错了什么?
结果是:
c++ - 使用 cout 链接时的 C++ ostringstream 奇怪行为
我是 C++ 初学者(来自 Java)。我有以下代码:
我重新定义了运算符 const* 以便我可以使用 cout<
但是,如果我现在运行程序,将第二个块注释掉(我有两个版本的 operator const*,默认情况下第二个被注释掉),它将显示
[ (1, 2) -> (1, 2) ]
但是在第二个块未注释的情况下运行时,输出如预期:
[ (1, 2) -> (3, 4) ]
当我在同一行中显示两个 Point 对象时似乎会出现问题(某种链接,尽管我不知道链接是否是正确的词)
我的问题是,为什么会这样?
更新
我已将 std::ostream& 运算符 << 函数添加到我的 Line 类中,但现在我收到以下错误:
问候, 奥勒良
c++ - c++ - 如何从ostringstream中获取char指针而不使用c ++中的副本
我有一个包含一些数据的 ostringstream 变量。我想设置一个指向 ostringstream 中数据的 char * 指针。
如果我执行以下操作:
在 ofs 中有一个字符串内容的副本。我想在没有副本的情况下获得指向该内容的指针。
有没有办法这样做?
c++ - 为什么 ostringstream 没有清空?
我正在尝试通过 ostringstream 将 int 转换为字符串,但每次我将数据放入流中时,它都会保留在流中。我已经尝试使用两者.flush()
,<<endl
但流永远不会清空。这个问题表明我并没有真正得到流(我没有,仍在努力)而且我正在做的是胡说八道和不必要的。
目前我得到的输出
代替
c++ - 如何在序列化期间插入字符串流的中间?
我向这个 oa 添加可变数量的内容,像这样
矩阵参考 - http://robot.kaist.ac.kr/haptics/chai3d-2.0.0_Doc/resources/html/structc_matrix3d.html
现在,当我完成时,我想在 udp 发送之前插入我添加到此存档中的矩阵数量,然后再开始添加矩阵。但我也知道我添加了多少矩阵,在我将它们添加到流中之后
我该怎么做?
c++ - 尝试从 ostream 打印但打印空白
我有很多日志记录功能,现在可以接受ostringstream&
. 我的目标是让他们能够接受用一行编写的流,如下所示:
我无法大幅更改方法原型,因为我有很多仍然可以工作的遗留代码。我想将其更改为,ostream&
因为这是<<
. 现在原型的形式是:
在阅读此处c++ stringstream to ostream to string后,我建议的更改是(让我们忽略其他参数):
以下行有效:
但这会打印一个空白:
stringstream
(由于某种原因,这实际上可以与 a 一起使用)
第二种形式必须有效,因为这是我的遗留代码的编写方式。
此外,如果我可以避免像stringstream().flush()
我喜欢一个解决方案那样写一些不雅的东西,那么如果你这样做,该线程中的每个解决方案都有效
但如果你这样做不会编译
编辑:澄清了我不能破坏的旧原型。
c++ - 逐行反转 ostringstream
应打印以下内容:
(1,2)
(1,3)
(1,4)
我怎样才能按行反转输出以便打印:
(1,4)
(1,3)
(1,2)