实验任务,定义一个书本结构体:书名,作者,单价,共3个成员
struct book{
char bName[80];// 书名
char bAuthor[20];//作者
float bPrice;//单价
};
编程实现:
(1)输入5本书本的信息,并将输入的书本信息保存到当前目录的book.txt文件中
(2)查询“高等数学”是否在book.txt文件中,如存在,输出该书本的基本信息,否则提示“查无此书籍!
#include <stdio.h>
#include <string.h>
typedef struct book{
char bName[80];// 书名
char bAuthor[20];//作者
float bPrice;//单价
}date;
void input (FILE *fp)
{
fp = fopen("book.txt", "a");
date d[10];
for(int i=0;i<5;i++)
{
scanf("%s%s%f", d[i].bName, d[i].bAuthor,&d[i].bPrice);
fprintf(fp, "%s %s %f\n", d[i].bName, d[i].bAuthor,d[i].bPrice);//中间留有空格方便读取
}
fclose(fp);//有开就有关
}
void sreach(FILE *fp)
{
fp = fopen("book.txt", "r");
int f=0;
date t;//定义一个临时结构体方便读入输出数据和判断
char user[80];
gets(user);//接收要查找的字符
for(int i=0;i<5;i++)
{
fscanf(fp,"%s%s%f",t.bName,t.bAuthor,&t.bPrice);//一行一行读取
if(strcmp(user,t.bName)==0){
f=1;
printf("书名%s 作者%s 价格%.1f",t.bName,t.bAuthor,t.bPrice);
break;
}
}
if(f==0){
printf("查无此书");
}
fclose(fp);
}
int main()
{
FILE *fp;
input(fp);
getchar();//接收一个回车
sreach(fp);
return 0;
}
文章评论