首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

fread读取构造体

2012-08-16 
fread读取结构体size_t fread ( void * ptr, size_t size, size_t count, FILE * stream )这个函数, 的

fread读取结构体
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );


这个函数, 的 第第2个参数是大小, 第三个是个数


1. 读取后一个结构后,如何解析????

struct MyStruct
{
int a;
char c;
};

如何解析???

2. 一个结构体存一行,会有换行,怎么处理

[解决办法]
#include <stdio.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\n");
 }
 fclose(fp);
}
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.c

#include <stdio.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\n");
 }
 fclose(fp);
}
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("\n");
 }
}

热点排行