二进制的输入和输出
二进制输入
fwrite
看不懂?不怕
看代码
//二进制的写文件
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
struct S
{
char name[20];
int age;
float score;
};
int main()
{
struct S s = { "zhangsan", 20, 95.5f };
//打开文件
FILE* pf = (FILE*)fopen("text.dat", "wb"); //以二进制的形式来写应该用:wb
if (pf == NULL)
{
perror("fopen");
return 1;
}
//写文件
fwrite(&s, sizeof(struct S), 1, pf);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
找到test.dat这文件的位置打开看看,结果就出来了
二进制的输出
fread
上代码
//二进制的读文件
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
struct S
{
char name[20];
int age;
float score;
};
int main()
{
struct S s = {0}; // 我们要将读的内容放在这里面
//打开文件
FILE* pf = (FILE*)fopen("text.dat", "rb"); //以二进制的形式来读应该用:rb
if (pf == NULL)
{
perror("fopen");
return 1;
}
//读文件
fread(&s, sizeof(s), 1, pf);
//读进去之后,我们来打印验证一下对没对
printf("%s %d %f", s.name, s.age, s.score);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}