#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")
我想保存到文件里,可是好像不太行,我还想弄一个输入数据错误后返回原来的位置重新输入
销售管理系统设计保存输入数据到文件
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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() 函数来清空缓冲区。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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 的代码运行