70,020
社区成员




#include "stdio.h"
#include "conio.h"
#include "malloc.h"
#include <stdlib.h>
struct stu
{
char sno[4]; //这里是字符串,最后一位需要\0, 为了字节对齐,最好创建4字节,但是你输入时最多输入3个字符
// int sno; 你可以考虑改为整型
char sname[4]; //同上
int age;
};
void main()
{
int i;
struct stu *s=(struct stu*)malloc((sizeof(struct stu)));
FILE *fpw,*fpr;
printf("\n\n======write======\n");
fpw=fopen("stu1","wb");
if(fpw)
{
for(i=0;i <3;i++)
{
printf("sno:");
//scanf("%s",&s->sno);
scanf("%s",s->sno); //s-sno已经是地址了
printf("sname:");
scanf("%s",s->sname); //同上
printf("age:");
scanf("%d",&s->age);
/*
printf("sno,sname,age:\n");
scanf("%s,%s,%d\n",&s->sno,&s->sname,&s->age);
s->sno[2]='\0';
s->sname[3]='\0';
*/
fwrite(s,sizeof(struct stu),1,fpw);
}
}
else
{
printf("open failed!");
}
fclose(fpw);
/**/
printf("\n\n======read======\n\n\n");
fpr=fopen("stu1","rb");
if(fpr)
{
i=0;
while(fread(s,sizeof(struct stu),1,fpr))
{
/*fseek(fpr,i*sizeof(struct stu),0);*/
printf("sno:%s\n",s->sno);
printf("sname:%s\n",s->sname);
printf("age:%d\n",s->age);
/* i++;*/
}
}
else
{
printf("open failed!");
exit(0);
}
printf("\n==over==\n");
fclose(fpr);
free(s);
getch();
}
#include "stdio.h"
#include "conio.h"
#include "malloc.h"
#include <stdlib.h>
struct stu
{
char sno[2];
char sname[3];
int age;
};
void main()
{
int i;
struct stu *s=(struct stu*)malloc((sizeof(struct stu)));
FILE *fpw,*fpr;
printf("\n\n======write======\n");
fpw=fopen("stu1","wb");
if(fpw)
{
for(i=0;i <3;i++)
{
printf("sno:");
scanf("%s",&s->sno);
printf("sname:");
scanf("%s",&s->sname);
printf("age:");
scanf("%d",&s->age);
/*
printf("sno,sname,age:\n");
scanf("%s,%s,%d\n",&s->sno,&s->sname,&s->age);
s->sno[2]='\0';
s->sname[3]='\0';
*/
fwrite(s,sizeof(struct stu),1,fpw);
}
}
else
{
printf("open failed!");
}
fclose(fpw);
/**/
printf("\n\n======read======\n\n\n");
fpr=fopen("stu1","rb");
if(fpr)
{
i=0;
while(fread(s,sizeof(struct stu),1,fpr))
{
/*fseek(fpr,i*sizeof(struct stu),0);*/
printf("sno:%s\n",s->sno);
printf("sname:%s\n",s->sname);
printf("age:%d\n",s->age);
/* i++;*/
}
}
else
{
printf("open failed!");
exit(0);
}
printf("\n==over==\n");
fclose(fpr);
free(s);
getch();
}
#include "stdio.h"
#include "conio.h"
#include "malloc.h"
#include "memory.h"
struct stu
{
char sno[2];
char sname[3];
int age;
};
int main()
{
int i;
struct stu *s=(struct stu*)malloc(sizeof(struct stu));
memset(s, 0, sizeof(struct stu));
FILE *fpw,*fpr;
printf("\n\n======write======\n");
fpw=fopen("stu1","ab");
if(fpw)
{
for(i=0;i <3;i++)
{
printf("sno:");
scanf("%s",s->sno);
printf("sname:");
scanf("%s",s->sname);
printf("age:");
scanf("%d",&s->age);
fwrite(s,sizeof(struct stu),1,fpw);
}
}
else
{
printf("open failed!");
exit(0);
}
printf("\n\n======read======\n\n\n");
fclose(fpw);//记得关闭
fpr=fopen("stu1","rb");
if(fpr)
{
while(fread(s,sizeof(struct stu),1,fpr))//这样写就可以了
{
printf("sno:%s\n",s->sno);
printf("sname:%s\n",s->sname);
printf("age:%d\n",s->age);
}
}
else
{
printf("open failed!");
exit(0);
}
printf("\n==over==\n");
free(s);
fclose(fpr);
getch()
return 0;
}
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct stu
{
char sno[2];
char sname[3];
int age;
};
int main(void)
{
int i;
struct stu *s=(struct stu*)malloc(sizeof(struct stu));
FILE *fpw,*fpr;
printf("\n\n======write======\n");
fpw=fopen("stu1","ab");
if(fpw)
{
for(i=0;i <3;i++)
{
printf("sno:");
scanf("%s",&s->sno); /*你的scanf有问题*/
printf("sname:");
scanf("%s",&s->sname);
printf("age:");
scanf("%d",&s->age);
/*
printf("sno,sname,age:\n");
scanf("%s,%s,%d\n",&s->sno,&s->sname,&s->age);
s->sno[2]='\0';
s->sname[3]='\0';
*/
fwrite(s,sizeof(struct stu),1,fpw);
}
}
else
{
printf("open failed!");
exit(0);
}
/**/
printf("\n\n======read======\n\n\n");
fclose(fpw);
fpr=fopen("stu1","rb");
if(fpr)
{
i=0;
while(fread(s,sizeof(struct stu),1,fpr))
{
//fseek(fpr,i*sizeof(struct stu),0);
//fread(s,sizeof(struct stu),1,fpr);
printf("sno:%s\n",s->sno);
printf("sname:%s\n",s->sname);
printf("age:%d\n",s->age);
i++;
}
}
else
{
printf("open failed!");
exit(0);
}
printf("\n==over==\n");
free(s);
fclose(fpr);
getch();
}