使用二进制存储
write(fd, &student, sizeof(student));
read(fd, &student, sizeof(student));
如果要读取里面第3个student的内容:
lseek(fd, 2 * sizeof(student), SEEK_SET); //即从开始搜索2个student那么长。
这样的前提是student中没有指针,因为每次运行指针的内容是不确定的。
直接是不能存储的,需要自己组织存储。比如,你的类有两个变量int a;char b;那么按你自定义的格式存储,一般可以加上标识符,化为字符串就可以了,比如sprintf(buf,"%d%c\r\n",a,b).这样你就存储那个buf字符串就可以了。反过来你需要解析字符串,涉及查找和转化为你的数据类型,再构造类的实例。