猿问

C 语言 有关于文件的?

<pre>void inb(sqlist &l) //添加图书信息到文件(仅管理员可用)

{

 FILE fp;

 book *p;

 int i;

 if((fp=fopen("C:\Users\Administrator\Desktop\library.txt","ab"))==NULL)

 {

  printf("储存文件失败!");

  return;

 }

 printf("请输入要添加的图书信息(图书编号为已有书数量'listsize+1'):图书编号  书名  作者名  库存数量  最近归还剩余天数(初始化为0)");

 scanf("%d%s%s%d%d",&p->number,p->bname,p->writer,&p->quantity,&p->time);

 if(l.listsize+1>l.length)

 {

  printf("储存位置已满!");

  return;

 }

 l.b[l.listsize]=*p;

 if(fwrite(&l.b[l.listsize],sizeof(struct book),1,fp)!=1)

  printf("数据储存失败!");

 l.listsize++;

 fclose(fp);

 return;

}</pre>


编写的是图书管理系统,这只是其中一段代码,就是这里卡住做不下去了,错误提示在下面。

error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'struct _iobuf *' (or there is no acceptable conversion)

error C2664: 'fwrite' : cannot convert parameter 4 from 'struct _iobuf' to 'struct _iobuf *'No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

error C2664: 'fclose' : cannot convert parameter 1 from 'struct _iobuf' to 'struct _iobuf *'

        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called


oO王
浏览 1863回答 2
2回答

onemoo

fp应该是文件指针: FILE *fp;

oO王

对了。。上面多了<pre></pre>  是我从其他网站复制过来自带的 不用考虑这个
随时随地看视频慕课网APP
我要回答