gpt4 book ai didi

c++ - iostream::write() 中需要 sizeof() 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:01 25 4
gpt4 key购买 nike

我认为标准库可以在这样的代码中调用模板类型的 sizeof 运算符(不是吗?):

#include <fstream>

int main()
{
std::ofstream file("test.bin", std::ios::binary | std::ios::out);
char buf = 42;

file.write(&buf, sizeof(buf));
}

那么是否有理由向程序员询问要在 ostream::write() 中写入的元素的大小?

PS:这是我的第一个问题,我不是英语,放纵一下

最佳答案

char * 可能是

char const c = 'a';
char const * ptr = &c; // char const *

如您的示例,但它也可以是字符串文字

std::string x("some string");
char const * ptr = x.c_str(); // also char const *!!

当您只有指针可用时,您如何决定要读取的内存地址?你需要一个长度:

file.write(x.c_str(), x.length());

关于c++ - iostream::write() 中需要 sizeof() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237890/

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