gpt4 book ai didi

c++ - stringstream sgetn 在 iOS 5.1 上返回 NULL

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:05 35 4
gpt4 key购买 nike

我有一个代码可以将 std::stringstream 的内容复制到 char * dest

    static size_t copyStreamData(std::stringstream & ss, char * const & source, char * dest)
{
ss.str("");
ss.clear();
ss << source;
size_t ret = ss.rdbuf()->sgetn( dest, (std::numeric_limits<size_t>::max)() ) ;
dest[ret] = 0;
return ret;
}

在 iOS 5.0 及以下版本中,它按预期工作正常...但在 iOS 5.1 中,它返回 NULL。

我做错了什么?还有我如何修补我的代码?

最佳答案

您尝试做的与正在做的基本相同:

std::size_t length = std::strlen(source) + 1; // + 1 for '\0'
std::copy(source, source + length, dest);
// Assuming dest has length + 1 bytes allocated for it

我怀疑 sgetn 是否返回 NULL,因为 sgetn 返回 std::streamsize 而不是指针类型。是返回 0,还是另一个函数返回 NULL?您是否尝试过在调用 rdbuf() 之前刷新流?

关于c++ - stringstream sgetn 在 iOS 5.1 上返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9873232/

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