gpt4 book ai didi

c++ - 二进制数据的 char * 的 fwrite 等价物

转载 作者:行者123 更新时间:2023-11-28 03:10:19 27 4
gpt4 key购买 nike

是否有等效于写入 char * 数组的 fwrite?我试过 stringstream 但它似乎并没有完全一样。我可以使用 memcpy,但我忘记了计数...

澄清 要写入的数据可能包含 nul。我要

write(array, &someint, 4);
write(array, &bunchofdata, sizeof(bunchofdata));
write(array, somestring, somestring.length());

然后继续增加偏移量。

最佳答案

创建写入固定大小缓冲区的流缓冲区非常容易。一旦你有了一个流缓冲区,你就可以在为它构造一个 std::ostream 之后使用正常的流操作写入它。例如:

struct membuf
: std::streambuf
{
membuf(char* base, std::size_t size) { this->setp(base, base + size); }
char* end() { return this->pptr(); }
};

int main()
{
char buffer[12345];
membuf sbuf(buffer, sizeof(buffer);
std::ostream out(&sbuf);
out << "hello, world\n";
std::cout << "wrote " << (sbuf.end() - buffer) << " bytes\n";
}

显然,您也可以使用未格式化的流操作。

关于c++ - 二进制数据的 char * 的 fwrite 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18666884/

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