请问这个读入文件数据的函数怎么修改?(C语言)
voidwrite(){inti;structstudent*g;structstudent*pf,*pb;FILE*C;C=fopen("test.txt","wb+"...
void write()
{
int i;
struct student *g;
struct student *pf,*pb;
FILE *C;
C=fopen("test.txt","wb+");
for(i=0;;i++)
{
pb=(struct student*)malloc(sizeof(struct student));
fscanf(C,"%s%s%s%ld%s%s%s%s",pb->num,pb->name,pb->sex,&pb->birth,pb->classes,pb->room,pb->phone,pb->QQ);
if(i==0)pf=g=pb;
else pf->next=pb;
pb->next=NULL;
pf=pb;
}
stu=g;
fclose(C);
}
结构体是这样的
struct student
{
char num[20];
char name[20];
char sex[10];
long birth;
char classes[20];
char room[20];
char phone[20];
char QQ[20];
struct student *next;
}*stu; 展开
{
int i;
struct student *g;
struct student *pf,*pb;
FILE *C;
C=fopen("test.txt","wb+");
for(i=0;;i++)
{
pb=(struct student*)malloc(sizeof(struct student));
fscanf(C,"%s%s%s%ld%s%s%s%s",pb->num,pb->name,pb->sex,&pb->birth,pb->classes,pb->room,pb->phone,pb->QQ);
if(i==0)pf=g=pb;
else pf->next=pb;
pb->next=NULL;
pf=pb;
}
stu=g;
fclose(C);
}
结构体是这样的
struct student
{
char num[20];
char name[20];
char sex[10];
long birth;
char classes[20];
char room[20];
char phone[20];
char QQ[20];
struct student *next;
}*stu; 展开
1个回答
展开全部
C=fopen("test.txt","wb+");
这个是写文件的,读改成C=fopen("test.txt","rb+");
参见fopen百科:
http://baike.baidu.com/link?url=uEB6XAha5e9mqIUuh1yJGyhimXj0kg8yYheg4kCdpvo4V1LdbcMhE3SwFVGP5eEqXtYsFKiopJXnudsvf0zqIa
w+还是会清空原有的文件
p.s.这种文件是以二进制形式读的,所以你不能用记事本建立这个文件。而应该将结构体fprintf到这个文件中
这个是写文件的,读改成C=fopen("test.txt","rb+");
参见fopen百科:
http://baike.baidu.com/link?url=uEB6XAha5e9mqIUuh1yJGyhimXj0kg8yYheg4kCdpvo4V1LdbcMhE3SwFVGP5eEqXtYsFKiopJXnudsvf0zqIa
w+还是会清空原有的文件
p.s.这种文件是以二进制形式读的,所以你不能用记事本建立这个文件。而应该将结构体fprintf到这个文件中
追问
我是想从默认的文件名中读取记录,并以这些记录为基础构建一个链表,然后获得新构建的链表表头指针。
追答
恩。那就用rb+
只是提醒下,这个文件以这种形式写才能被这样 读取
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询