这么快就找到C文件读写错误问题的答案,真的很意外!

 真的不知道二级制读写与一般的读写到底有什么区别,仅仅是在文件打开时把原来的“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);
	}	
}
///:~
发布了159 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_39410618/article/details/90578970
今日推荐