#include <stdio.h> #include <stdlib.h> #include <string.h> void query_medicine() { struct Medicine med; FILE* fp; char name[20]; fp = fopen("medicine.dat", "rb"); printf("请输入需要查询的药品名称:\n"); scanf("%s", name); while (fread(&med, sizeof(struct Medicine), 1, fp)) { if (strcmp(name, med.name) == 0) { printf("药品名称:%s\n", med.name); printf("药品类型:%s\n", med.type); printf("药品单价:%.2f\n", med.price); printf("药品数量:%d\n", med.num); fclose(fp); return ; } } printf("未找到该药品!\n"); fclose(fp); }
时间: 2024-01-22 09:02:45 浏览: 127
#include<stdio.h>
这段代码定义了一个查询药品信息的函数`query_medicine()`。具体实现如下:
1. 打开文件`medicine.dat`,以二进制读方式打开;
2. 提示用户输入需要查询的药品名称;
3. 循环读取文件中的每个`Medicine`结构体,如果找到药品名称与用户输入相同的药品,则输出该药品的信息并返回;
4. 如果循环结束还未找到该药品,则输出未找到该药品的信息。
需要注意的是,在函数中读取完文件后需要调用`fclose()`函数关闭文件,避免文件未正常关闭导致的文件损坏或数据错误。
需要使用该函数前,需要定义一个`struct Medicine`结构体,如下所示:
```
struct Medicine {
char name[20]; // 药品名称
char type[20]; // 药品类型
float price; // 药品单价
int num; // 药品数量
};
```
另外,需要在头文件中声明函数`query_medicine()`,例如:
```
void query_medicine();
```
阅读全文