为什么在 C++ 的 write() 函数中使用 (char *)
Why (char *) is used in write() function in C++?
person pers;
pers.getData();
fstream fs("person.txt", ios::out | ios::in | ios::binary | ios::app);
fs.write((char*)&pers, sizeof(pers));
我试图弄清楚为什么在写入文件时需要将对象(&pers)的地址转换为指向字符的指针?
因为这就是
write
的声明方式:
basic_ostream& write(const char_type* s, streamsize n);
它将字符数组写入流。如果你想(ab)使用它来写入其他类型的字节,那么你需要一个狡猾的强制转换来假装它是一个字符数组。
就个人而言,我会使用reinterpret_cast
:它比C型演员表的危险性略低,也更明显。
因为fstream.write
需要一个char*
作为它的第一个参数。
ostream& write (const char* s, streamsize n);
相关文章:
- 将char*传递给pthread_read函数
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 从函数返回const char*数组
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 将函数参数"const char*"转换为"std::string_view"是
- std::string 构造函数如何处理固定大小的 char[]?
- 在 constexpr 构造函数 (c++17) 中赋值到 const char * 在使用 Android NDK 时
- 构造函数 (C++) 中的 char 指针参数存在问题
- c ++ 如何在构造函数中初始化 char
- C++ 存储来自 char* 函数的字符列表
- 从循环返回char函数数据
- 预处理器检查 constexpr const char* 函数
- 如何使const char*函数起作用
- 返回一个带有随机选项和局部变量的 char 函数
- System::字符串到char*函数.内存泄漏
- 如何在c++中使用递归char *函数来反转字符串
- 如何在c++中创建一个char函数
- Windows与UTF-16一起使用char*函数
- c++在char函数中搜索char