C++编译时出现fatal error C1004: unexpected end of file found
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
struct goods_list
{
int id; /*商品条形码编号*/
char name[30]; /*商品名称*/
double price; /*商品价格*/
int number; /*商品的数量*/
char produce[30]; /*生产商*/
char date[30]; /*生产日期*/
};
void add_goods(); /*函数声明*/
void search_goods();
void amend_goods();
void delete_goods();
void type_goods();
void exit_program();
void menu();
void initialization();
int main(void)
{
printf("\t\t\t☆☆☆☆☆☆☆☆☆☆【欢迎进入超市商品信息管理系统】☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t\t按任意键继续\n");
getch();
system("cls");
menu();
initialization();
menu();
return 0;
}
/*初始化*/
void initialization()
{
FILE *fp;
struct goods_list i={1,"东莞米粉",8.8,1000,"东莞","2010年6月1日"};
if((fp=fopen("goods_list.txt","w"))==NULL)
{
printf("\t\t\t打开文件出现错误,请您重试");
exit(0);
}
fwrite(&i,sizeof(struct goods_list),1,fp);
fclose(fp);
}
/*主界面菜单即是选择功能菜单*/
void menu()
{
int choice;
printf("系统提供的服务如下:1:录入新物品信息\n2:查询系统物品信息\n 3:修改系统物品信息\n 4:删除系统物品信息\n 5:打印所需物品信息\n 6:退出\n");
printf("请输入您要选择的菜单:");
scanf("%d",&choice);
switch(choice)
{
case 1:
add_goods();
break;
case 2:
search_goods();
break;
case 3:
amend_goods();
break;
case 4:
delete_goods();
break;
case 5:
type_goods();
break;
case 6:
exit_program();
break;
default:
printf("\t\t\t输入无效,请您重新输入");
getch();
system("cls");
menu();
}
}
/*录入新物品信息*/
int panduanID(int id){ /*判断所输条形码编号是否已存在*/
FILE *fp; ;
struct goods_list i;
if((fp=fopen("goods_list.txt","r"))==NULL)
{
printf("\t\t\t打开文件出现错误!请您重试");
exit(0);
}
fread(&i,sizeof(struct goods_list),1,fp);
while(!feof(fp))
{
if(i.id==id)
{
fclose(fp);
return 1;
break;
}
fread(&i,sizeof(struct goods_list),1,fp);
}
fclose(fp);
return 0;
}
void add(){
struct goods_list i;
char choice;
FILE *fp;
if((fp=fopen("goods_list.txt","ab"))==NULL)
{
printf("\t\t\t 打开文件出现错误!请您重试");
exit(0);
}
labID:
printf("\n\t请输入要录入新物品信息\n");
printf("\t\t\t 物品的条形码编号:");
scanf("%d",&i.id);
if(panduanID(i.id)==1)
{
printf("\t\t\t此条形码编号已被使用,请您重新输入");
goto labID;
}
printf("\t\t\t 物品的名称:");
scanf("%s",i.name);
printf("\t\t\t 物品的价格:");
scanf("%f",&i.price);
printf("\t\t\t 物品的数量:");
scanf("%d,&i.number");
printf("\t\t\t 物品的产地:");
scanf("%s",i.produce);
printf("\t\t\t 物品的生产日期:");
scanf("%s",i.date);
fwrite(&i,sizeof(struct goods_list),1,fp);
fclose(fp);
printf("\t\t\t\t\t\t 物品信息录入成功!!!\n");
printf("\n您想继续添加吗?(Y/N)");
scanf("%c",&choice);
if(choice=='Y'){
add();
}
else system("cls");
menu();
}
/*查询系统物品信息*/
void search(){
FILE *fp;
int fID;
char choice;
struct goods_list i;
if((fp=fopen("goods_list.txt","r"))==NULL)
{
printf("打开文件错误!请您重试");
exit(0);
}
czID:
printf("\t\t\t 请输入要查询的物品的条形码编号");
scanf("%d",&fID);
scanf("%d",&fID);
fread(&i,sizeof(struct goods_list),1,fp);
while(!feof(fp))
{
if(i.id==fID)
{printf("\t\t◇◇◇◇◇◇◇◇◇◇物品信息◇◇◇◇◇◇◇◇◇◇");
printf("\t\t物品的条形码编号:%4d\n",i.id);
printf("\t\t物品名称:%4d\n",i.name);
printf("\t\t-----------------------------------------");
printf("\t\t物品价格:%4d\n",i.price);
printf("\t\t-----------------------------------------");
printf("\t\t物品数量:%4d\n",i.number);
printf("\t\t-----------------------------------------");
printf("\t\t生产厂家:%4d\n",i.produce);
printf("\t\t-----------------------------------------");
printf("\t\t生产日期:%4d\n",i.date);
printf("\t\t-----------------------------------------");
printf("\t\t你想继续查询吗?(Y/N)");
scanf("%c",&choice);
if(choice=='Y')
{ search();
}
else {system("cls");
menu();
}
fread(&i,sizeof(struct goods_list),1,fp);
{
fclose(fp);
printf("\t\t\t输入的条形码编号不存在,请您重新输入");
goto fID;
}}