我正在做一项作业,但我被其中的一部分卡住了,将整数和 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/