C语言多文件实现库存录入存储与数据打印功能求助
解答:C语言实现库存信息存储与打印程序
嘿,别担心,新手刚接触C语言项目太正常了!我来帮你拆解这两个程序的实现,代码里会加详细注释,你能轻松跟上节奏~
第一个程序:save_inventory.c(存储库存信息)
这个程序负责接收用户输入的零件数据,直到输入0结束,然后把所有数据写入到inventory.txt文件中。
#include <stdio.h> int main() { // 定义变量存储零件编号、数量、价格 int part_num, qty; float price; // 打开文件,"w"表示写入模式(文件不存在则创建,存在则覆盖) FILE *fp = fopen("inventory.txt", "w"); // 检查文件是否成功打开 if (fp == NULL) { printf("无法打开文件!\n"); return 1; // 异常退出程序 } printf("该程序用于存储企业库存信息。请输入商品数据(零件编号、数量、价格):\n"); printf("输入格式示例:3, 10, 25.5(输入0结束)\n"); // 循环接收输入,直到零件编号为0 while (1) { // 先读取零件编号,判断是否退出 scanf("%d", &part_num); if (part_num == 0) { break; // 输入0时终止循环 } // 读取数量和价格(匹配输入的逗号分隔格式) scanf(", %d, %f", &qty, &price); // 将数据写入文件,每行一组数据,用逗号分隔 fprintf(fp, "%d,%d,%.2f\n", part_num, qty, price); } // 必须关闭文件,避免数据丢失 fclose(fp); printf("库存信息已成功保存到inventory.txt文件!\n"); return 0; }
编译与运行:
在终端执行以下命令:
gcc save_inventory.c -o save_inventory ./save_inventory
然后按照提示输入数据,比如依次输入3, 1, 9.9、5, 10, 19.9,最后输入0结束程序即可。
第二个程序:print_inventory.c(打印库存信息)
这个独立程序负责读取inventory.txt中的数据,并格式化打印出来。
#include <stdio.h> int main() { int part_num, qty; float price; // 打开文件,"r"表示只读模式 FILE *fp = fopen("inventory.txt", "r"); if (fp == NULL) { printf("找不到inventory.txt文件!请先运行save_inventory程序存储数据。\n"); return 1; } printf("=== 库存信息列表 ===\n"); printf("%-10s %-8s %-10s\n", "零件编号", "数量", "价格"); printf("-------------------------\n"); // 循环读取文件每行数据,直到文件末尾(EOF) while (fscanf(fp, "%d,%d,%f", &part_num, &qty, &price) != EOF) { // 格式化打印,保证输出整齐美观 printf("%-10d %-8d %-10.2f\n", part_num, qty, price); } fclose(fp); return 0; }
编译与运行:
终端执行命令:
gcc print_inventory.c -o print_inventory ./print_inventory
就能看到之前存储的所有库存数据啦~
新手小提醒
- 一定要关闭文件:使用
fclose(),否则可能导致数据没有完全写入文件。 - 文件路径:默认是程序运行的当前目录,如果要指定其他路径,可以修改
fopen()中的文件名,比如"/home/yourname/inventory.txt"。 - 输入容错:如果用户输入格式错误(比如少输了逗号),程序可能会出现异常,新手阶段可以先保证正确输入,后续可以添加输入校验逻辑优化。
内容的提问来源于stack exchange,提问作者djohnson
相关产品推荐
相关产品推荐

