c语言编程,读写文件

[复制链接]
查看11 | 回复1 | 2009-7-16 03:23:20 | 显示全部楼层 |阅读模式
#include #include #include typedef struct{ char id[10]; char title[100]; char author[20]; int quantity; float price;}Book;const char filename[]="TS.TXT";void add(){ FILE *p; if((p=fopen(filename,"a"))==0){perror("无法打开文件");return; } Book b={"","","",0,0}; printf("输入书号:"); scanf("%s",b.id); printf("输入书名:"); scanf("%s",b.title); printf("输入作者:"); scanf("%s",b.author); printf("输入数量:"); scanf("%d",&(b.quantity)); printf("输入价格:"); scanf("%f",&(b.price)); fprintf(p,"%s %s %s %d %f\n",b.id,b.title,b.author,b.quantity,b.price); fclose(p);}void display(){ FILE *p; if((p=fopen(filename,"r"))==0){perror("无法打开文件");return; } Book b={"","","",0,0}; float total=0; printf("书号书名作者数量价格\n"); int i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); while(i!=-1){printf("%s %s %s %d %f\n",b.id,b.title,b.author,b.quantity,b.price);total+=b.price*b.quantity;i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); } printf("价格总和:%.2f\n",total); fclose(p);}void search(){ FILE *p; if((p=fopen(filename,"r"))==0){perror("无法打开文件");return; } Book b={"","","",0,0}; char id[10]; printf("输入书号:"); scanf("%s",id); int i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); while(i!=-1){if(strcmp(b.id,id)==0) break;i=fscanf(p,"%s %s %s %d %f",b.id,b.title,b.author,&(b.quantity),&(b.price)); } if(strcmp(b.id,id)==0){printf("书号书名作者数量价格\n");printf("%s %s %s %d %f\n",b.id,b.title,b.author,b.quantity,b.price); } else printf("查无此书\n"); fclose(p);}int main(){ int c; do{printf("1.添加2.显示3.查询4.退出\n");printf("选择你的操作:");scanf("%d",&c);if(c==1) add();else if(c==2) display();else if(c==3) search();else if(c==4) break;else printf("非法操作,请重试\n"); }while(1); return 0;}
回复

使用道具 举报

千问 | 2009-7-16 03:23:20 | 显示全部楼层
简单的文件操作看书
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行