问题标签 [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.

0 投票
1 回答
492 浏览

c++ - 将 char 数组转换为可以附加到 ostringstream 的内容

//我想将paramName的值添加到parmStream工作b4当parmName是一个字符串但obv现在不是

给我以下..错误:类型无效的操作数 \u2018char [1024]\u2019 和 \u2018const char [2]\u2019 到二进制 \u2018operator+\u2019

提前为帮助喝彩

0 投票
4 回答
2427 浏览

c++ - 派生streambuf 或basic_ostringstream?

我想派生一个字符串流,以便我可以使用 operator<< 构造一条消息,然后将其抛出。API 看起来像:

这应该做一个

所以我所做的是创建一个errorbuf(继承自streambuf),它重载'overflow'方法,然后创建一个ostream(&errorbuf)。我想知道我是否不应该从 basic_ostringstream 或其他东西继承...

0 投票
2 回答
2307 浏览

c++ - 截断 ostringstream、iomanip:setw 生成的 C++ 字符串字段

在 C++ 中,我需要带前导零的整数的字符串表示形式,其中表示形式有 8 位且不超过 8 位,必要时截断右侧的数字。我以为我可以只使用 ostringstream 和 iomanip.setw() 来做到这一点,如下所示:

这里的输出是:

非常好!但是,如果我尝试更大的数字,setw 会让输出超过 8 个字符:

输出:

所需的输出是“20000000”。没有什么能阻止我使用第二个操作来只取前 8 个字符,但是 iomanip 中真的缺少字段截断吗?Boost 格式会一步完成我需要的吗?

0 投票
1 回答
569 浏览

c++ - VS2008 中的 C++ STL:std::ostringstream 在大量分配/清除使用后抛出 std::bad_alloc

我遇到了一种情况(在 Win32 上),其中 std::ostringstream 对象继续消耗进程内存,即使它在一系列附加类型操作后表面上被清除。请看一下这个 C++ 片段:

在执行内部 while() 循环期间,在任务管理器中观察进程的内存使用情况显示出持续上升的斜坡,最终趋于平稳。但是,这种平衡发生在重复抛出错误 std::bad_alloc 的同时。这表明堆内存已经耗尽,或者请求的块大小在连续空间中不可用。

有没有其他人经历过 ostringstream 对象的这种泄漏现象,还有哪些其他替代对象可用而不是这个片状对象?

非常感谢!

0 投票
8 回答
80964 浏览

c++ - istringstream、ostringstream 和 stringstream 有什么区别?/ 为什么不在每种情况下都使用 stringstream?

我什么时候使用,std::istringstream为什么不应该只在每个场景中使用(是否存在任何运行时性能问题?)。std::ostringstreamstd::stringstreamstd::stringstream

最后,这有什么不好的(而不是使用流):

0 投票
4 回答
15520 浏览

c++ - 用 ostringstream 对浮点数进行四舍五入

我有一个关于使用 ostringstream 从浮点数转换为 C++ 字符串的问题。这是我的台词:

当 t 的值为 -0.89999 时,它会四舍五入到 -0.9,但是当它的值是 0.0999 或小于 1.754e-7 时,它只会在不四舍五入的情况下打印。什么可以解决这个问题。

0 投票
5 回答
9032 浏览

c++ - 如何将 char 数组转换为基于字符串的十六进制流(ostringstream)

在 C++ 中(在带有 gcc 的 Linux 上)我想将一个字节数组 ( vector<unsigned char>) 放到 aostringstream或 astring中。

我知道我可以使用sprintf,但它似乎也不是最好的使用方式char*

顺便说一句:这个链接没有帮助

编辑:到目前为止所有答案都有效。但我不是故意的,我想将字节/十六进制值转换为它们的字符串表示形式,例如vector<..> = {0,1,2} -> string = "000102". 抱歉丢失但重要的细节

0 投票
3 回答
3590 浏览

c++ - ostringstream 的字符串构造函数的目的是什么?

在 MSVC 2005 上,我有以下代码。

我期望的是:

我得到的是:

用字符串初始化流,我希望流将其位置移动到初始字符串的末尾。显然,STL 不同意我的看法(不是第一次)。

这种行为的目的是什么?这个用例对任何事情都有用吗?另外,有没有办法将流位置推进到初始字符串的末尾?

0 投票
2 回答
1730 浏览

c++ - 如何使用 std::ostringstream 截断整数类型的宽度?

假设你有类似的东西:

输出:042

这个输出是因为 std::setw 确保了最小宽度,我们告诉流用 0 填充但是你如何做相反的事情并指定最大宽度,以便在 STL 和本机 C++ 中截断显示最好...

目前我有一些我认为是丑陋和低效的黑客:

输出:123

我看过 boost::format 但据我所知,这是同一个故事,没有办法“漂亮”地做到这一点......有什么建议吗?

更新:与 STL 的其他容器和模板对象相比,通常已知 std::ostringstream 和 STL 流执行缓慢。也许我最好制作一个包装并在内部使用 std::queue 的消息队列对象,然后只使用 sprintf_s 进行格式化?

0 投票
2 回答
552 浏览

c++ - 如何将 float .1 流式传输为 .1 而不是 0.1

我可以检查值是否 < 1,然后找到前导零并将其删除。不是很优雅。