#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define BOOK 1000
int i = 0;
struct book{
char name[30];//图书名称
float price;//价格
int year;//借阅时间
int moth;
int day;
char id[20];//流水号
char user[10];//借阅人姓名
int userid;//借阅人id号
}books[BOOK];
void book_add()
{ int n;
char ch;//判断是否继续录入的标志
system("cls");//清屏
FILE* fp = fopen("D:\实训\图书管理系统信息保存.txt", "w");
if (fp == NULL)
{
printf("打开文件失败");
exit(0);
}
sss:printf("----------------------------------\n"); printf("图书名称:");
scanf("%s", &books[i].name); printf("图书价格:");
scanf("%f", &books[i].price); printf("借阅时间(输入格式某年 某月 某日):"); scanf(" %d", &books[i].year);
scanf("%d", &books[i].moth);
scanf("%d", &books[i].day); printf("流水号:");
scanf("%s", books[i].id);
printf("借阅人姓名:");
scanf("%s", books[i].user);
printf("借阅人id号:");
scanf("%d", &books[i].userid);
fwrite(&books[i],sizeof(struct book),1,fp); i++;
printf("是否继续输入:");
scanf(" %c", &ch);
if (ch == 'Y'||ch=='y')
{
goto sss;
}
//写入数据
//关闭文件
fclose(fp);
}
oid book_bookname()
{ int j,flag=1;
int s;
char bookname[10],ch;
book* p[100];
FILE* fp = fopen("D:\实训\图书管理系统信息保存.txt", "r");
if (fp == NULL)
{
printf("打开文件失败");
exit(0);
}
for(s=0;s<=i;s++)
{
fread(&books[s],sizeof(struct book),1,fp);
}
getchar();
ssss:printf("请输入你想查询的书名:");
gets(bookname);
//
for(j=0;j<i;j++)
{
p[j]=&books[j];
if(strcmp(bookname,books[j].name)==0)
{
printf("图书名称:%s\n",p[j]->name);
printf("图书价格:%.1f\n", p[j]->price);
printf("图书借阅日期:%d-%d-%d\n", p[j]->year, p[j]->moth, p[j]->day);
printf("图书流水号:%s\n", p[j]->id);
printf("借阅人:%s\n", p[j]->user);
printf("借阅人id号:%d\n", p[j]->userid); printf("***************************************************\n");
flag=0;
}
}
if(flag)
{
printf("查无此书,是否重新输入(y/n):"); scanf("%c",&ch);
if(ch=='y')
goto ssss;
}
fclose(fp);
getchar();
}
FILE* fp = fopen("D:\\实训\\图书管理系统信息保存.txt", "r");
这个斜杠得转义吧。你写入的时候也是一样