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();
}
要下次输入时不会将之前输入的数据覆盖的。
非常感谢!但我刚试了一下,在C盘里没有创建到这个文件。
追答我这里看以创建的啊
这里的fprintf(fp," ", );是紧接着printf()函数吗?fprintf(),printf(),scanf()这三个函数的顺序应该怎样排呢?
追答不是,是把printf()换成fprintf(fp," ", );这样就写入文件了,printf()是输出到屏幕
追问哦,那可不可以在屏幕上输出的同时也在文件中写入呢?
追答这个好像不能同时的,这个不确定了
又查了下,没有可以同时的。
我已经试过了,但不知在哪个地方加入,还fprintf()函数和fscanf()函数也不知用在什么地方。
追答给你举个例:
void append()
{
//clrscr();
if((fp=fopen("information.txt","a"))==NULL)
{
printf("不能打开文件!\n");
exit(0);
}