如何使用 C++ 中的写入函数将浮点转换为 char 以写入文件
how can i cast float to char to write on a file using write function in c++?
我需要使用写入函数而不是运算符在文件上写入浮动价格<<但它崩溃了
int addDevice(fstream & f, Device & d)
{
char buffer[200];
strcpy(buffer, d.id);
strcat(buffer, "#");
strcat(buffer, d.name);
strcat(buffer, "#");
short length = strlen(buffer) + sizeof(d.price);
char c = '$';
f.seekp(0, ios::end);
f.write((char*) & c, 1);
f.write((char*)&length, sizeof(length));
f.write(buffer, length);
f.write((char *) & d.price, sizeof(float));
f.write((char *)'#', 1);
f.seekp(0, ios::beg);
return length;
}
问题很可能是这条线
f.write((char *)'#', 1);
这会将'#'
的数值(即 35(重新解释为内存地址,取消引用该地址,并将该地址处的字节写入f
如果该地址有效,则不是。这是你得到未定义的行为和可能崩溃的地方(尽管你不能依赖它,这种事情总是崩溃(。
我想你想要
f.put('#');
相关文章:
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将生成文件转换为 CMakeLists.txt等效项
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 如何将 UTF-8 文本从文件转换为某个可以迭代的容器,并检查每个符号是否为C++字母数字?
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 将文件复制到自定义位置,存在字符串转换问题
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 将模板类转换为标头和 cpp 文件
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- 如何使用 C++将 2D RGB 数组转换为 dds 文件?
- 如何将二进制文件头示例代码 (C++/C#) 转换为 Python?
- 在 c++ 中逐行读取文件(将代码从 Python 转换为 C++)
- 将调用类转换为库本身后,库头文件上没有这样的文件
- 如何使用C++将.trc文件类型转换为文本文件?
- 将 boost::文件系统::p ath 转换为 char?
- 如何将 .ui 完全转换为 C++ 头文件和源文件
- 转换 mp4 文件并将其流式传输到带有树莓派的查看器
- Makefiles:转换文件扩展名
- .cpp错误:与"std::cerr "中的"运算符<"不匹配<"正在转换文件 \" ""
- 从c++基础转换文件