如何将整数和双精度输出到二进制文件
how to output integers and doubles to binary file
我正在做一个作业,我卡在了其中的一部分,整数和双精度的输出到二进制文件。
我知道我需要使用 write() 函数以及输出流的二进制标志,但是 write() 需要一个字符数组来输出。 当我输出一个常规字符串时,我可以使用 (char *) 或使用 .c_str() 函数对其进行类型转换,但是我在使用双精度和整数时遇到了问题。
我将如何将整数和双精度输出为二进制?
您可以取消引用变量,然后将指针强制转换为 char*
,然后使用 sizeof()
确定要写入的字节数。例如:
int var;
char* varAsCharP = (char*)&var;
size_t bytesToWrite = sizeof(int);
此外,如果您需要文件是可移植的,您可能希望首先使用各种 hton 函数(保存时)和 ntoh 函数(回读时)将变量转换为网络字节顺序 - 尽管这仅适用于整数。
您可以使用下面描述的 stdlib 方法:http://msdn.microsoft.com/en-us/library/0heszx3w%28v=vs.71%29.aspx
或者您可以使用boost::lexical_cast
或者您可以使用stringstream
任你挑选
如果你只想要字节表示,那么你可以做一个这样的memcpy:
int myVar = 10;
char * dest = new char[sizeof(myVar)];
memcpy(&dest, &myVar, sizeof(myVar));
相关文章:
- 读取二进制文件时如何输出?
- C++实现代码中的字符串不应存在于输出二进制文件中.如何解决
- 在C 中输出到二进制文件中的麻烦
- 如何获取与 objdump 输出的标签相对应的 ELF 二进制文件中的文件偏移量
- 如何在 c++ 中使用二进制文件输入/输出读取/写入结构的字符串类型成员
- 将对象(指针)在地图中输出到二进制文件
- 如何将std::映射输出到二进制文件
- 读取并输出二进制文件(C++)中位置的字节
- 在线C++编译器:为我输出二进制文件
- 正在读取C++中的二进制文件,并将结果输出为hexdump
- 如何在 C++ 中使用更改光标输入和输出二进制文件
- C ++如何以二进制格式输出Ply文件
- 如何将整数和双精度输出到二进制文件
- 二进制文件中结构的输出返回垃圾
- 用C++将二进制字符串输出到二进制文件
- 自动使输出二进制文件大于命令行编译的二进制文件
- 字节输出到二进制文件c++
- 输出一个写在二进制文件c++中的double
- 从turbo c++中的二进制文件读取后出现意外输出
- 有没有一种方法可以在输出二进制文件中存储clang编译时标志