gpt4 book ai didi

c++ - 直接从 std::istream 读取到 std::string

转载 作者:IT老高 更新时间:2023-10-28 21:43:35 25 4
gpt4 key购买 nike

是否可以直接将已知数量的字节读取到 std::string 中,而无需创建临时缓冲区?

例如,目前我可以通过

boost::uint16_t len;
is.read((char*)&len, 2);
char *tmpStr = new char[len];
is.read(tmpStr, len);
std::string str(tmpStr, len);
delete[] tmpStr;

最佳答案

std::string 有一个你可以使用的 resize 函数,或者一个可以做同样事情的构造函数:

boost::uint16_t len;
is.read((char*)&len, 2);

std::string str(len, '\0');
is.read(&str[0], len);

这是未经测试的,我不知道是否要求字符串具有连续存储。

关于c++ - 直接从 std::istream 读取到 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1816319/

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