fwriteとfreadアプリケーション


fwriteとfread関数の簡単な応用、関数の原型は“Cファイルの操作”の文章を見ることができます
fwrite.cpp
#include <stdio.h> 
#include <stdlib.h>
#define SIZE 2  
struct student_type  
{  
	char name[10];  
	int num;  
	int age;  
	char addr[10];  
}stud[SIZE];  
void save()  
{  
	FILE *fp;  
	int i;  
	if((fp=fopen("stu_list","wb"))==NULL)  
	{  
		printf("cant open the file");  
		exit(0);  
	}  
	for(i=0;i<SIZE;i++)  
	{  
		if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)  
			printf("file write error
"); } fclose(fp); } int main() { int i; for(i=0;i<SIZE;i++) { scanf("%s%d%d%s",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr); save(); } for(i=0;i<SIZE;i++) { printf("%s,%d,%d",stud[i].name,stud[i].num,stud[i].age,stud[i].addr); } }

fread.cpp
#include <stdio.h> 
#include <stdlib.h>
#define SIZE 2  
struct student_type  
{  
	char name[10];  
	int num;  
	int age;  
	char addr[10];  
}stud[SIZE];  
void read()  
{  
	FILE *fp;  
	int i;  
	if((fp=fopen("stu_list","rb"))==NULL)  
	{  
		printf("cant open the file");  
		exit(0);  
	}  
	for(i=0;i<SIZE;i++)  
	{  
		if(fread(&stud[i],sizeof(struct student_type),1,fp)!=1)  
			printf("file write error
"); } fclose(fp); } int main() { int i; read(); for(i=0;i<SIZE;i++) { printf("%s,%d,%d,%s",stud[i].name,stud[i].num,stud[i].age,stud[i].addr); printf("
"); } system("pause"); return 0; }