gpt4 book ai didi

c - 将数据保存到二进制文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:29 24 4
gpt4 key购买 nike

我想将文件保存为二进制文件,因为我听说它可能比普通文本文件小。

现在我试图用一些文本保存一个二进制文件,但问题是该文件只包含文本和末尾的 NULL。我希望在文件中只看到零和一个。

非常感谢任何解释或建议。

这是我的代码

#include <iostream>
#include <stdio.h>

int main()
{
/*Temporary data buffer*/
char buffer[20];

/*Data to be stored in file*/
char temp[20]="Test";

/*Opening file for writing in binary mode*/
FILE *handleWrite=fopen("test.bin","wb");

/*Writing data to file*/
fwrite(temp, 1, 13, handleWrite);

/*Closing File*/
fclose(handleWrite);

/*Opening file for reading*/
FILE *handleRead=fopen("test.bin","rb");

/*Reading data from file into temporary buffer*/
fread(buffer,1,13,handleRead);

/*Displaying content of file on console*/
printf("%s",buffer);

/*Closing File*/
fclose(handleRead);
std::system("pause");

return 0;
}

最佳答案

所有文件都只包含 1 和 0,在二进制计算机上就是这样。

当您保存文本时,您是在以给定的编码保存该文本的二进制表示形式,该编码定义了每个字母如何映射到位。

所以对于文本,文本文件或二进制文件几乎无关紧要;您听说过的空间节省通常适用于其他数据类型。

考虑一个浮点​​数,例如 3.141592653589。如果另存为文本,则每个数字需要一个字符(只需计算它们),再加上句点。如果以二进制形式保存为 float 的副本的位,在典型的 32 位系统上它将占用四个字符(四个字节或 32 位)。调用存储的确切位数,例如:

FILE *my_file = fopen("pi.bin", "wb");
float x = 3.1415;
fwrite(&x, sizeof x, 1, my_file);

CHAR_BIT * sizeof x , 请参阅 <stdlib.h>对于 CHAR_BIT .

关于c - 将数据保存到二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com