You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:03:59