c语言写一个文件数据读到数组里的销售管理系统函数
时间: 2024-03-19 20:46:12 浏览: 135
用c语言程序设计销售管理系统.doc
好的,以下是一个基本的实现,假设文件中每行是一个楼盘销售信息,包含销售编号、楼盘名称、销售人员、销售额等字段,以逗号分隔:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SALES 1000 // 最大销售记录数
typedef struct {
char id[16]; // 销售编号
char name[32]; // 楼盘名称
char salesman[16]; // 销售人员
float amount; // 销售额
} Sale;
Sale sales[MAX_SALES]; // 销售记录数组
int num_sales = 0; // 销售记录数
void load_sales(const char* filename) {
FILE* fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return;
}
char line[128];
while (fgets(line, sizeof(line), fp) != NULL) {
// 去掉行尾的换行符
line[strcspn(line, "\n")] = '\0';
// 切分字符串
char* id = strtok(line, ",");
char* name = strtok(NULL, ",");
char* salesman = strtok(NULL, ",");
char* amount_str = strtok(NULL, ",");
// 转换销售额为浮点数
float amount = atof(amount_str);
// 添加到销售记录数组
Sale sale = {0};
strncpy(sale.id, id, sizeof(sale.id) - 1);
strncpy(sale.name, name, sizeof(sale.name) - 1);
strncpy(sale.salesman, salesman, sizeof(sale.salesman) - 1);
sale.amount = amount;
sales[num_sales++] = sale;
}
fclose(fp);
}
```
这段代码定义了一个 `Sale` 结构体,其中包含销售编号、楼盘名称、销售人员和销售额等字段。然后定义了一个 `load_sales` 函数,负责从文件中读取销售记录,并将其保存到 `sales` 数组中。读取文件使用了 C 标准库中的 `fopen` 和 `fgets` 函数,将每行数据按照逗号分隔,并转换销售额为浮点数。最后将销售记录保存到 `sales` 数组中,并更新 `num_sales` 变量的值。在实际应用中,可能需要对文件中的数据进行一些处理和验证,例如去除空行、检查字段是否完整、排除错误数据等等。
阅读全文