c++ - 如何将整数和 double 输出到二进制文件

标签 c++ integer double binaryfiles

我正在做一项作业,但我被其中的一部分卡住了,将整数和 double 输出到二进制文件。

我知道我需要使用 write() 函数以及对输出流使用二进制标志,但是 write() 需要一个字符数组来输出。当我输出一个常规字符串时,我可以使用 (char *) 或使用 .c_str() 函数对其进行类型转换,但是我在处理 double 和整数时遇到了问题。

如何将整数和 double 输出为二进制?

最佳答案

您可以取消引用您的变量,然后将指针转换为 char*,然后使用 sizeof() 确定要写入的字节数。例如:

int var;
char* varAsCharP = (char*)&var;
size_t bytesToWrite = sizeof(int);

此外,如果您需要文件是可移植的,您可能希望先将变量转换为网络字节顺序,使用各种 hton 函数(保存时)和 ntoh 函数(读回时)——尽管仅适用于整数。

关于c++ - 如何将整数和 double 输出到二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10262913/

相关文章:

C++ 将整数的大小压缩到 2 位?

java - 通过 Try 和 Catch block 检查字符串和 Null 异常

c++ - Visual Studio 2013 专业版错误 MSB8020

c++ - 从字母数字 QString 中提取数字

java - 将整数转换为 int

android - 如何将 short[] 转换为 double[]?

Java 双 : How to properly implement 'd' or 'D if there are many numbers or an expression to calculate?

c++ - 基于 vector 的二叉树遍历

c++ - 奇怪 - mysql 的 sql::SQLException 未被其类型捕获,而是被捕获为 std::exception 并成功投回

c++ - Linux/C++ : getting user's directory without leaks