CLKAB 2016-09-05 18:43 采纳率: 0%
浏览 1575

为什么fgets不起作用?

一个简单图书管理系统两个函数,单独使用都没有问题,但是当调用完第一个函数之后再调用第二个,中间的while (fgets(buf2, 1000, fp2))就直接跳过了,也不知道是什么问题
/*-----------新增图书函数------------*/
void add()
{
FILE *fp;
int i,confirm,n;
printf("\t\t|------------------新增图书书目---------------------|\n");
printf("要新增书的数量(不超过100):");
scanf("%d",&numb);
for(i=num;i<numb+num;i++)
{
printf("\t\t请输入序号:");
scanf("%d",&b[i].ID);
printf("\n");

    printf("\t\t请输入书名:");
    scanf("%s",b[i].bookname);
    printf("\n");

    printf("\t\t请输入作者名:");
    scanf("%s",b[i].writer);
    printf("\n");

    printf("\t\t请输入出版社:");
    scanf("%s",b[i].company);
    printf("\n");

    printf("\t\t请输入年份:");
    scanf("%d",&b[i].year);
    printf("\n");

    printf("\t\t请输入月份:");
    scanf("%d",&b[i].month);
    printf("\n");

    printf("\t\t请输入价格:");
    scanf("%d",&b[i].price);
    printf("\n");       
}
printf("输入完成是否保存?保存请输入1,不保存请输入0:");
scanf("%d",&confirm);
if(confirm==1)
{
    saveall();
}
    return ;

}
/*----------------------输出所有书目信息-------------------*/
void printall()
{
int number=0,i=0;
FILE *fp2;
bookinf c[10000];
char buf2[1000];
fp2 = fopen("D:\book.txt", "r"); // 打开文件
if (!fp2) // 判断是否打开成功
{
perror("读取文件失败");
return 0;
}
while (fgets(buf2, 1000, fp2))
number+=1; // 累计行数
fclose(fp2);
fp2= fopen("D:\book.txt", "r"); // 打开文件
if(fp2==NULL)
{
perror("读取文件失败");
return 0;
}
memset(c,0X0,sizeof(c));
while (fp2)
{
fscanf(fp2,"%d%s%s%s%d%d%d",&c[i].ID,c[i].bookname,c[i].writer,c[i].company,&c[i].year,&c[i].month,&c[i].price);
if(ferror(fp2))
{
fclose(fp2);
perror("读文件失败");
}
if(i==number)
{
break;
}
i++;
}
fclose(fp2);
for(i=0;i<number;i++)
{
printf("序号:%d,书名:%s,作者:%s,出版社:%s,日期:%d年%d日,价格:%d元\n",c[i].ID,c[i].bookname,c[i].writer,c[i].company,c[i].year,c[i].month,c[i].price);
}
}

  • 写回答

4条回答 默认 最新

  • wjb1111 2016-09-05 22:48
    关注

    while没执行 就是你进循环的条件是false而不是true

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)