📄 qname.c
字号:
#ifndef QUERYBYNAME
#define QUERYBYNAME
#include "stdio.h"
#include "shead.h"
/* 判断名称是否相等,只要name1开始部分与name2相同就认为想等 */
int equename(char * name1,char * name2)
{ /* name2为用户输入的名称 */
/* 如果name1中包含name2返1,否则返回0 */
int i=0;
while(name2[i]!='\0')
{
if(name1[i]=='\0')
{
return 0;
}
if(name1[i]!=name2[i])
{
return 0;
}
i++;
}
return 1;
}
void QueryByName()
{
int result=0;/* result=1说明成功 */
product TempS;/* 定义进行操作的临时结构体变量 */
char Xingming[20];/* 用户输入要查询的商品名称 */
char DataFile[10]="product",next;
FILE * fp=NULL;
clrscr();
begin:
result=0;
printf("Please input the name of product which you want to look up.\n");
printf("Name:");
scanf("%s",&Xingming);
/* 以只读的方式打开文件 */
fp=fopen(DataFile,"rb");
if(fp==NULL)
{
printf("\nOpen file %s fial!End with any key.\n",DataFile);
perror("Open file fail!");
fflush(stdin);
getch();
return;
}
/* 循环查找和输入的名称匹配的商品信息记录,如果找到,则输出结果 */
while(fread(&TempS,sizeof(product),1,fp)!=(int)NULL)
{
if( equename(TempS.Name,Xingming)==1)
{
if(result==0)
{
printf("\nNumber\tNmae\tprice\t\tdiscount\t\tmemberPrice\n");
result=1;
}
printf("%ld\t%s\t%.2f\t\t%-8.2f\t\t%.2f\n",TempS.Number,TempS.Name,TempS.price,TempS.discount,TempS.memberprice);
}
}
fclose(fp);
/* 提示用户已查找结果,并询问是否继续 */
printf("\nGo on?(Y/N)");
fflush(stdin);
next=getchar();
putchar('\n');
if(next=='Y'||next=='y') goto begin;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -