C语言:文件操作 检索商品
程序员文章站
2022-07-15 08:03:34
...
以下的代码块,是建立在已经下载了sp.txt
要求:
有一存储很多商品数据(每件商品的属性先后包括:品名、规格、单价(有小数位)、数量,数据的最长长度分别为20、10、6、5,在文件中以空格为分隔,每个商品的数据占一行)的文本文件,从键盘输入某种商品的品名,要求在文件中查找有无相应品名商品(可能有多条记录或没有),若有则在屏幕上显示出相应的商品的品名、规格、数量、单价(显示时,品名、规格、数量、单价之间使用逗号(,)作分隔,单价显示时只显示2位小数),若无则显示没有相应品名的商品。
代码框架展示:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct goods
{
char pinming[24];
char guige[12];
float danjia;
long shuliang;
};
int main()
{
int n;
char sppm[21];
FILE *fp;
struct goods SP;
printf("Please input shang pin pin ming:");
gets(sppm);
fp=fopen("sp.txt","r");
if(fp==NULL)
{
printf("file open error!");
exit(0);
}
n=0;
printf("\nOutput:\ncha zhao qing kuang:");
while(!feof(fp))
{
if(fscanf(fp,"%s%s%6f%5ld",SP.pinming,SP.guige,&SP.danjia,&SP.shuliang)<4)
{
break;
}
else
{
if(strcmp(sppm,SP.pinming)==0)
{
n++;
printf("\n%s,%s,%ld,%.2f",SP.pinming,SP.guige,SP.shuliang,SP.danjia);
}
}
}
if(n==0)
{
printf("\nmeiyou shangpin:%s\n",sppm);
}
fclose(fp);
return 0;
}