血战的弗兰克 2015-12-23 09:00 采纳率: 33.3%
浏览 1603

这段不知道出啥问题了,总之输出的内容永远少个开头

#include
#include
#include
#include
struct book
{
int num;
char name[30];
char add[30];
};
book b[10]={
{0,"glory","D:\1234.txt"},
{1,"make","D:\123.txt"},
{2,"overload","D:\1233.txt"},
{3,"diver","D:\1243.txt"}
};

int add();
void main();
void qd();
void sc();
int check();
void op();
void find();
void putm();
void sr();
int check(char *x)//测试是否创建
{
FILE *fp;
if((fp=fopen(x,"at+"))!=NULL)
{
printf("打开成功!\n\n");
return 1;
}
else
{
printf("error\n");
getch();
exit(1);
return 0;
}
}

void getmenu()//定位目录
{ int x;
scanf("%d",&x);
switch(x)
{
case 1:printf("\t\t\t1.书本录入\n");add();main();break;
case 2:printf("\t\t\t2.查找某一书本\n");find();main();break;
case 3:printf("\t\t\t3.书本目录\n");putm();main();break;
case 4:printf("\t\t\t4.这是书本目录,想加入东西到那本书\n");putm();sr();main();break;
case 5:printf("\t\t\t5.删除书本\n");putm();sc();main();break;
case 6:printf("\t\t\t=========成功退出!=============\n");exit(0);break;
}
}
void putm()//将结构体里的项信息输出
{
int i;
for(i=0;i<10;i++)
{
printf("%d\t%s\n",b[i].num,b[i].name);
}

}
void menu()//目录
{
printf("\t\t\t1.叼炸天的图书的管理系统!!\n");
printf("\t\t\t1.书本录入\n");
printf("\t\t\t2.查看书本内容\n");
printf("\t\t\t3.书本目录\n");
printf("\t\t\t4.输入书本内容\n");
printf("\t\t\t5.删除书本\n");
printf("\t\t\t6.退出!\n");
printf("\t\t\t输入下一步操作__\n");

}

int add()//添加书本
{
char *x;
int a;
x=b[a].add;

printf("输入想要打开的书本编号\n");
scanf("%d",&a);
b[a].num=a;

printf("输入想要打开的书本名字\n");  
scanf("%s",&b[a].name); 
printf("建立的图书所在地址:\n");
scanf("%s",&b[a].add);
x=b[a].add;
check(x);
return a;

}

void op(char *x)//将一本书的内容打出来
{
printf("这是书本内容呢\n");
FILE *fp;
if((fp=fopen(x,"r"))!=NULL)
{
printf("open now!\n\n\n");
}
else
{
printf("error,maybe there isn't a such book,please check!\n\n\n\n");
getch();
exit(1);
}
char c=fgetc(fp);
while(c!=EOF)
{
c=fgetc(fp);
putchar(c);
}
getch();
}
void find()
{
int a;
printf("输入要找的书的id:\n");
scanf("%d",&a);
char *x=b[a].add;
op(x);
}

void sr()//写入自己想写的东西
{
printf("输入想添加的内容就好\n");
int a;

char c;
scanf("%d",&a);
char *x;
FILE *fp;
x=b[a].add;
fp=fopen(x,"at");
fflush(stdin);
c=getchar();
int y=check(x);
if(y=1)
{
while(c!='\n')
{
fputc(c,fp);
c=getchar();
}
}
else
{
printf("\nerror\n");
}
rewind(fp);
op(x);
printf("\n\n\n");
}
void sc()
{
int a;
char *x,c;

scanf("%d",&a); 
x=b[a].add;
fflush(stdin);
FILE *fp;
printf("确定要删除吗1.确定2.否?\n");
c=getchar();
if(c=1)
{
fp=fopen(x,"w");
}

else
{
main();
printf("已返回菜单!\n");
}
}

void main()//主函数
{
menu();
getmenu();

}

/*
void sc()
{
    int a;
    char *x,c;

    scanf("%d",&a); 
    x=b[a].add;
    fflush(stdin);
    FILE *fp;
    printf("确定要删除吗1.确定2.否?\n");
    c=getchar();
    if(c=1)
    {
    fp=fopen(x,"w");
    }
else
{
    main();
    printf("已返回菜单!\n");
}
}
就是这段*/
  • 写回答

4条回答 默认 最新

  • ysuwood 2015-12-23 14:27
    关注

    if(c=1)改为:

     if(c==1)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办