派大星(●'◡'●) 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 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题