gpt4 book ai didi

c++ - 从字符串流中的偏移量读取

转载 作者:行者123 更新时间:2023-11-28 00:08:52 26 4
gpt4 key购买 nike

我需要将读取到的 header 和有效负载拆分为字符串流。

我在字符串流中找到了有效负载的开始位置。

可以读取标题:

// where ss is the source stringstream
ssHeader.read(ss.str(), nDataStartPos-1);

现在我想将余数读入有效负载字符串流。

ssPayload.read(ss.str()+nDataStartPos, nTotalBytesRed);

失败并出现以下错误:

  • 错误:从“const char*”到“char*”的无效转换

  • 正在初始化 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::read(_CharT*, std::streamsize) 的参数 1 [with _CharT = char, _Traits = std::char_traits]'

我猜测 str() 命令返回一个临时的,由字符串流的内部缓冲区构造。

所以我想我可以将 ssPayload 复制到一个字符串,然后执行一个 substr,但是有没有更有效的方法来实现这一点,或者 stringstream 可能是不适合这项工作的工具?

最佳答案

您猜对了,是的,stringstream 是不适合这项工作的工具。

通常我们读入一个固定缓冲区,重复将其内容复制到任何你想要的地方,直到所有内容都被读取。

是的,这很糟糕。

您可以使用流迭代器和 std::copy

关于c++ - 从字符串流中的偏移量读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com