C语言中的文件操作(以二进制数据进行存储)
1.二进制读写文件
int main()
{
//FILE* pFile = fopen("1.bin","rb");//以只读方式打开二进制文件,该文件必须存在
FILE* pFile = fopen("1.bin","wb");//以只写的方式打开或新建一个二进制文件,只允许写数据
//fwrite(写入的二进制缓冲区,读入元素的大小,读入元素的个数,文件句柄);
int a = 0Xff00;
fwrite(&a, sizeof(int), 1, pFile);
//fread(读入的二进制缓冲区,读入元素的大小,读入元素的个数,文件句柄);
//fread(&a, sizeof(int), 1, pFile);
printf("%x\n", a);
fclose(pFile);
return 0;
}
2.整数和二进制读写文件
如上所写的直接写入整数
3.数组和二进制读写文件
int main()
{
FILE* pFile = fopen("1.bin", "rb");
int arr[10];
//for (int i = 0; i < 10; ++i)
//{
// arr[i] = i + 1;
//}
//arr[0] = -1;
//fwrite(arr, sizeof(int), 10, pFile);//写入整数二进制
fread(arr, sizeof(int), 10, pFile);//读整数二进制
for (int i = 0; i < 10; ++i)
{
printf("%5d", arr[i]);
}
fclose(pFile);
return 0;
}
4.结构体和二进制读写文件
struct sBase
{
int type;
int x;
int y;
}
int main()
{
FILE* pFile = fopen("1.bin", "wb");
struct sBase base = { 1, 5, 3 };
fwrite(&base, sizeof(struct sBase), 1, pFile);//写入了一个sBase大小的元素进去
fclose(pFile);
return 0;
}
5.序列化和二进制读写文件
还不会