C语言题,紧急,高手们帮帮忙! 如何在下面这个函数中加入文件操作来保存输入的数据?

voidAdd()//信息录入{charc='Y';intchoice;while(c=='Y'){fflush(stdin);//清除输入流的缓存区,确保不影响后面的数... void Add()//信息录入
{

char c='Y';
int choice;
while(c=='Y')
{
fflush(stdin);//清除输入流的缓存区,确保不影响后面的数据读取
printf("\n请输入设备ID号:");
scanf("%s",eq[n].ID);
printf("\n请输入设备种类:");
scanf("%s",eq[n].kind);
printf("\n请输入设备名称:");
scanf("%s",eq[n].name);
printf("\n请输入设备价格:");
scanf("%s",eq[n].price);
printf("\n请输入设备购入日期:");
scanf("%d %d %d",&eq[n].purchaseDay.year,&eq[n].purchaseDay.month,&eq[n].purchaseDay.day);
printf("\n请输入设备是否报废:");
scanf("%s",eq[n].yesno);
printf("\n请输入报废日期:");
scanf("%d %d %d",&eq[n].overDay.year,&eq[n].overDay.month,&eq[n].overDay.day);
n++;
printf("\n提示:已经完成%d记录的录入!\n",n);
printf("\n输入Y继续!\n");
c=getchar();
}
printf("\n提示:输入0则返回主菜单!\n");
scanf("%d",&choice);
if(choice==0)

menu();
}
要下次输入时不会将之前输入的数据覆盖的。
展开
 我来答
yfm325
2012-04-10 · TA获得超过370个赞
知道小有建树答主
回答量:379
采纳率:71%
帮助的人:169万
展开全部
随便写了一个,因为不知道你的sn[]数据室怎么定义的,所以你自己只写了出来没有排错,你自己调试吧,应该就是这个样子

int writeDat()
{
FILE *fp;
if((fp=fopen("c:\\设备清单.txt","a"))==NULL) //打开文件
{
printf("打开文件失败 c:\\设备清单.txt!");
getch();
return(1);
}

//输出到文件
fprintf(fp, "\n%s ",eq[n].ID);
fprintf(fp, "%s ",eq[n].kind);
fprintf(fp, "%s ",eq[n].name);
fprintf(fp, "物做%s ",eq[n].price);
fprintf(fp, "%d %d %d",&eq[n].purchaseDay.year,&eq[n].purchaseDay.month,&eq[n].purchaseDay.day);
fprintf(fp, "%s ",eq[n].yesno);
fprintf(fp, "%d %d %d",&eq[n].overDay.year,&eq[n].overDay.month,&eq[n].overDay.day);

//输出到屏幕,不需要的话可以屏蔽掉
fprintf("\n%s ",eq[n].ID);
fprintf("%s ",eq[n].kind);
fprintf("%s ",eq[n].name);
fprintf("%s ",eq[n].price);
fprintf("%d %d %d",&eq[n].purchaseDay.year,&eq[n].purchaseDay.month,&eq[n].purchaseDay.day);
fprintf("%s "罩游衡,eq[n].yesno);
fprintf("%d %d %d",&eq[n].overDay.year,&eq[n].overDay.month,&eq[n].overDay.day);
fclose(fp);//关闭文件
return(0);
}

void Add()//信息录入
{

char c='Y';
int choice;
while(c=='Y')
{
fflush(stdin);//清除输入流的缓存区,确保不影响后面的数据读取
printf("\n请输入设备ID号:");
scanf("%s",eq[n].ID);
printf("\n请输入设备种类:");
scanf("%s",eq[n].kind);
printf("\n请输入设备名称:");
scanf("%s",eq[n].name);
printf("\n请输入设备价格:"磨友);
scanf("%s",eq[n].price);
printf("\n请输入设备购入日期:");
scanf("%d %d %d",&eq[n].purchaseDay.year,&eq[n].purchaseDay.month,&eq[n].purchaseDay.day);
printf("\n请输入设备是否报废:");
scanf("%s",eq[n].yesno);
printf("\n请输入报废日期:");
scanf("%d %d %d",&eq[n].overDay.year,&eq[n].overDay.month,&eq[n].overDay.day);

if(writeDat())printf("\n提示:第%d条记录的录入失败!\n",n+1);;
else
{
n++;
printf("\n提示:已经完成%d记录的录入!\n",n);;
}
printf("\n输入Y继续!\n");
c=getchar();
}
printf("\n提示:输入0则返回主菜单!\n");
scanf("%d",&choice);
if(choice==0)

menu();
}
追问
非常感谢!但我刚试了一下,在C盘里没有创建到这个文件。
追答
我这里看以创建的啊
145飞雪090
2012-04-10 · TA获得超过621个赞
知道小有建树答主
回答量:282
采纳率:100%
帮助的人:155万
展开全部
void main()
{
FILE *fp;
if((fp=fopen("文件名.格式","a"))==NULL)
{
printf("Can't open the file!\n");
exit(0);
}
```````
fprintf(fp," ", );
``````
fclose(fp);
}
fprintf和printf类似,只是前面加 fp(文件指针变量名)
文件名谨世哪.格式 在当前目返芹录下就可以直接用,如果需要指明路径就必须多加转义字符\
如祥码:C:\\Documents and Settings\\Administrator\\hi.txt
更多追问追答
追问
这里的fprintf(fp,"    ",    );是紧接着printf()函数吗?fprintf(),printf(),scanf()这三个函数的顺序应该怎样排呢?
追答
不是,是把printf()换成fprintf(fp,"    ",    );这样就写入文件了,printf()是输出到屏幕
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天涯路易2011
2012-04-10 · TA获得超过263个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:244万
展开全部
if((fp=fopen("information.txt","a"))==NULL)//这租前里的“弊拍a”弊卜清表示追加
{
printf("不能打开文件!\n");
exit(0);
}
追问
我已经试过了,但不知在哪个地方加入,还fprintf()函数和fscanf()函数也不知用在什么地方。
追答
给你举个例:
void append()
{
//clrscr();
if((fp=fopen("information.txt","a"))==NULL)
{
printf("不能打开文件!\n");
exit(0);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式