问题标签 [strstream]
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::strstream ?
我最近发现它std::strstream
已被弃用,取而代之的是std::stringstream
. 我已经有一段时间没有使用它了,但它做了我当时需要做的事情,所以听到它被弃用感到很惊讶。
我的问题是为什么做出这个决定,以及std::stringstream
提供了哪些没有的好处std::strstream
?
visual-c++ - c++中的strstream
我正在编写代码
有一个问题,它对 temp 变量根本不起作用,只是得到结果只有字符串测试,最后没有 10?
}
c++ - 如何在没有强制转换或复制的情况下从 const unsigned char* 初始化 std::istringstream?
我有由const unsigned char *p
和描述的字节序列中的二进制数据size_t len
。我希望能够将此数据传递给需要std::istream *
.
我认为我应该能够做到这一点,而无需复制数据、不安全的强制转换或编写新的流类。但到目前为止,我失败了。任何人都可以帮忙吗?
更新
感谢大家的评论。这似乎是一个无法回答的问题,因为std::istream
使用char
和转换在某些时候至少需要从unsigned char
.
务实的做法是这样做:
并传递&i
给期待的函数std::istream *
。
c++ - 关于 ostrstream 的查询
首先,我想让所有人知道 ostrstream 已被弃用,将来不应使用。
但我的怀疑是另一回事。我的应用程序的源代码具有如下代码。
我感兴趣的代码行是最后一行。在这种情况下我们是否必须删除一个指针。这对我来说看起来很尴尬。没有手动分配内存。我的想法是否正确?
c++ - strstream 的 pcount 和冻结在 stringstream 中的替代品是什么?
我有使用 strstream 并使用 pcount 和 freeze 方法的旧 c++ 代码。我想改用 stringstream 类。strstream 的 pcount 和 freeze 方法有什么替代品?代码是这样的:
c++ - ostrstream 将常量字符串解释为指针
我在清理旧 C/C++ 应用程序的调试宏时遇到了这个问题:我们有一个 Tracer 类继承自ostrstream
(我知道它自 C++98 以来已被弃用,但此应用程序是 1998 年编写的!)我们使用像这样:
现在,如果链中的第一个值是上面的常量字符串,则调用ostrstream::str()
Tracer 的结果(在析构函数中完成,将结果插入队列)包含指向该字符串的指针的十六进制表示,而不是文本。因此,上面的语句会产生类似"0x401a37 message here"
. 旧的宏不会发生这种情况,因为它们总是将长(线程 ID)作为第一个值,现在已被删除。
使用 gdb 进入它表明,对于第一次插入,这调用operator<<(void const*)
了 ostrstream,而随后的插入调用operator<< <...>(basic_ostream<...>&, char const*)
(为了便于阅读而删除了模板)。
有人可以解释这种行为吗?什么是解决这个问题的干净方法?我找到了一个简单的解决方法,它<< left
用作第一个参数 - 这安全吗?有没有更好的方法来做到这一点?
这是一个最小化的示例:
c++ - 字符串流相关问题
我正在尝试执行以下操作
a & b 是包含在结构中的值,并且该结构作为事件发送到其他进程,该进程提取这些值。我遇到的问题是当我这样做时
在第 6 行之后,string string1
为空,并将一个空string
传递给其他进程。
有没有办法重用stringstream str
不同的值?
这是实际的代码——
}
}
想法是将所有字符串连接成一个字符串 appDetails 并填充结构成员 SReadDIDResponse.DIDValue 而这里是结构 SReadDIDResponse
c++ - std::strstream 没有正确实现 eof 和 peek?
我有一个这样定义的字节数据源:
dataSize
非零且通常很大(兆字节)
以下代码有效:
stream.eof()
是假的,firstByte 是1
,这是正确的
以下代码不起作用:
stream.eof()
为真,firstByte 为-1
,这是不正确的
我知道 strstream 已被弃用,但在这种情况下,它避免了分配和复制两次传入数据,这很好。但是为什么 peek 和 eof 不起作用?
编辑:如果我替换std::strstream
为std::istrstream
,这很好用。这没关系,因为我实际上只是从数据中读取。但是为什么 std::strstream 在这种情况下不起作用?我只是好奇。
c++ - basic_stringbuf 没有名为“freeze”的成员
以下代码无法编译:
我在编译时收到以下错误:
在谷歌搜索后,我怀疑我应该使用 ostringstream 代替 ostrstream,所以我将程序修改如下:
但现在我收到以下错误:
c - 在 C 中对同一字符串多次应用 strstr()
我正在尝试编写一个代码,使用 strstr 提取和标记之间的所有单词/字符串。但似乎它只是停留在提取的第一个字符串上,即“快速”。提取第一个字符串后如何让代码继续运行?