【小结】
fwrite和fread特点相同,参数分别是:变量地址、变量大小、变量个数(通常为1)、文件指针,函数返回值如果不等于写入/读取的变量个数则失败。
【代码】
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#define maxSize 100
typedef struct
{
int sno;
char sname[maxSize];
double grade[3];
}Student;
int main()
{
Student s1;
s1.sno = 101;
strcpy(s1.sname, "StudentName");
s1.grade[0] = s1.grade[1] = s1.grade[2] = 150;
FILE* fp;
//写入
fp = fopen("stud.dat", "wb");
fwrite(&s1, sizeof(Student), 1, fp);
fclose(fp);//必须加这一行,如果不关闭文件直接读入的话,fp所指的依旧是文件尾标志。除非用rewind(fp)函数。
//读入
Student s2;
fp = fopen("stud.dat", "rb");
fread(&s2, sizeof(Student), 1, fp);
fclose(fp);
return 0;
}