gpt4 book ai didi

C++:使用 std::string (&str[0]) 作为缓冲区从文件中安全读取?

转载 作者:行者123 更新时间:2023-11-30 03:52:20 27 4
gpt4 key购买 nike

<分区>

我有一个正在读取的二进制文件。在文件中的某一点,有一个已知数量的字节组成一个简单的 ASCII 字符串(可能带有换行符)。现在我有:

void doSomething(istream &in) {
vector<char> buf(length + 1, '\0');
in.read(&buf[0], length);
string str(&buf[0]);
}

但我意识到这样做可能会更快

void doSomething(istream &in) {
string str(length + 1, '\0'); // +1 needed?
in.read(&str[0], length);
}

我试着查看标准以查看字符串分配是否始终按顺序分配,或者这样做是否安全。安全的意思,不会意外读入(写入)内存而不是字符串的一部分。有人知道吗?

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