真的不知道二级制读写与一般的读写到底有什么区别,仅仅是在文件打开时把原来的“r”改成“rb”(w改成wb)就成功了。
//: test03.cpp #include <stdio.h> #include <stdlib.h> struct student{ char name[0x20]; int score; long num; int age; }; int main() { struct student stu[20]; struct student stu2[30]; system("cls"); int i; char* p; for(i = 0; i < 10; i++) { p = stu[i].name; *p++ = 'a' + i; *p = '\0'; stu[i].score = 20 + i; stu[i].num = 1 + i; stu[i].age = 10 + i; } for(i = 0; i < 10; i++) { printf("name:%s\t", stu[i].name); printf("score:%d\t", stu[i].score); printf("num:%d\t", stu[i].num); printf("age:%d\t\n", stu[i].age); } FILE* f; f = fopen("stu.dat", "wb"); fwrite(stu, sizeof(struct student), 10, f); fclose(f); f = fopen("stu.dat", "rb"); fread(stu2, sizeof(struct student), 10, f); fclose(f); printf("##########\n"); for(i = 0; i < 10; i++) { printf("name:%s\t", stu2[i].name); printf("score:%d\t", stu2[i].score); printf("num:%d\t", stu2[i].num); printf("age:%d\t\n", stu2[i].age); } } ///:~