派大星(●'◡'●) 2023-01-24 21:17 采纳率: 50%
浏览 17
已结题

销售管理系统设计保存输入数据到文件

#include <stdio.h>#include <stdlib.h>#include <string.h># define N 4struct ss { //说明结构体ss,清单主要内容销售员,产品,销售额 int no; //销售员编号 int product; //产品编号 float sales; //销售额};struct ss fz[N]; //定义全局结构体数组:fz,里面有四个元素,每一个元素都是结构体变量int main(void) { int a, b, s, i, n, j; printf("请选择你需要执行的功能\n\n");//输出提示信息 printf(" 如需录入销售员便条信息并保存请输入:1\n\n"); printf(" 计算每个人的每种产品的销售额请输入:2\n\n"); printf(" 按销售额对销售员从高到低排序请输入:3\n\n"); printf(" 按销售额对不同种类的产品排序请输入:4\n\n"); printf(" 如需增加、删除、修改便条信息请输入:5\n\n"); printf(" 如需退出程序或已完成您的需求请输入:6\n\n"); scanf("%d", &a); switch (a) { case 1: { FILE *fp; //定义文件指针 if ((fp = fopen("销售管理系统设计.txt", "w")) == NULL) { //打开文件 printf("文件无法打开\n"); exit(0); } for (i = 0; i < N; i++) { //输入便条信息 printf("请输入第%d条便条信息\n", i + 1); fflush(stdin); printf("请输入销售员的编号\n"); scanf( "%d", &fz[i].no); if (fz[i].no > N) { printf("无此销售员编号,请重新输入\n")
我想保存到文件里,可是好像不太行,我还想弄一个输入数据错误后返回原来的位置重新输入

  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-01-24 22:35
    关注

    为了保存到文件中,您可以在输入数据后使用 fprintf 函数将数据写入文件,例如:

    fprintf(fp, "销售员编号: %d, 产品编号: %d, 销售额: %.2f\n", fz[i].no, fz[i].product, fz[i].sales);

    对于输入数据错误后返回原来位置重新输入的问题,您可以在输入数据后使用 while 循环进行判断,如果输入的数据不符合要求,就可以重新输入。例如:

    while (fz[i].no > N) {
    printf("无此销售员编号,请重新输入\n");
    scanf("%d", &fz[i].no);
    }

    这样就可以在输入错误时重新输入了。

    请注意,在C语言中,scanf() 函数会把回车留在输入缓冲区中。如果在读取下一个输入之前不清空缓冲区,scanf() 函数将会读取到上一次输入留下的回车。这可能会导致程序出错,因此在使用 scanf() 函数之前,我们可以使用 fflush(stdin) 或者 gets() 函数来清空缓冲区。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月24日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行