C++编译时出现fatal error C1004: unexpected end of file found

coolnut 2010-06-08 07:09:11
#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;
}}
...全文
5958 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-10-21
  • 打赏
  • 举报
回复
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
yusup45 2011-10-21
  • 打赏
  • 举报
回复
你也可以编一个检查括号匹配程序来检查
yusup45 2011-10-21
  • 打赏
  • 举报
回复
我也遇到过这样的问题




一般缺少大口号会出现这种错误!
stilling2006 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yunfeng7854 的回复:]
search()少两个'}',另外最后应该是goto czID,还有几个函数没有定义。赞楼上
[/Quote]

Up


另外,如果你用的是vs开发环境的话,用VX插件补充下。
cattycat 2010-06-09
  • 打赏
  • 举报
回复
看是不是少了大括号。
用visual assist助手吧,能帮你把格式弄好一点,就不会出现少了括号之类错误。
yunfeng7854 2010-06-09
  • 打赏
  • 举报
回复
可以读取的呀,我稍微改了一下测试了一下,是可以的,文件内容应该是不能手动添加的,好像内容都是字符形式的,比如输出编号为1,在文件里是看不到的
coolnut 2010-06-08
  • 打赏
  • 举报
回复
在吗?楼上的朋友
coolnut 2010-06-08
  • 打赏
  • 举报
回复
我找了很久都没找出来,真的非常感谢,还有知道这个程序为什么不可都文件里面得信息?
yunfeng7854 2010-06-08
  • 打赏
  • 举报
回复
search()少两个'}',另外最后应该是goto czID,还有几个函数没有定义。赞楼上
yunfeng7854 2010-06-08
  • 打赏
  • 举报
回复
search()少两个'}',另外最后应该是goto czID
yunfeng7854 2010-06-08
  • 打赏
  • 举报
回复
search()少两个'}',另外最后应该是goto czID,还有几个函数没有定义
机智的呆呆 2010-06-08
  • 打赏
  • 举报
回复
可能导致上述问题的原因:
1 main函数里大括号没有匹配
2 struct定义}后没有分号
3 如果用vc,使用预编译头文件没有include预编译头文件,默认include<stdafx.h>
....
内容概要:本文围绕“【EI复现】考虑灵活性的数据中心微网两阶段鲁棒规划方法(Matlab代码实现)”展开,提出了一种针对数据中心微电网的两阶段鲁棒优化规划模型,重点考虑系统在运行过程中面临的灵活性需求与不确定性因素。该方法通过构建第一阶段的投资决策与第二阶段的运行调整机制,有效应对源荷双重不确定性,提升微网系统的可靠性与经济性。文中采用鲁棒优化理论处理不确定性,并结合Matlab编程实现完整的模型求解流程,提供了可复现的算法代码,便于科研人员验证与拓展。该研究对于高比例可再生能源接入背景下的数据中心能源系统规划具有重要参考价值。; 适合人群:具备一定电力系统、优化理论及Matlab编程基础,从事微电网、综合能源系统、鲁棒优化等相关领域研究的研究生、科研人员及工程技术人员(尤其适合有1-3年科研经验者);; 使用场景及目标:① 掌握两阶段鲁棒优化在微网规划中的建模思路与数学表达;② 学习如何将灵活性指标融入能源系统规划模型;③ 复现EI级别高水平论文的核心算法,提升科研能力与论文写作水平;④ 为后续开展数据中心、智能微网、不确定性优化等方向的研究提供技术积累与代码基础; 阅读建议:建议读者结合文中提供的Matlab代码逐行分析,理解两阶段鲁棒优化的建模技巧与求解流程,重点关注不确定性集的构建、列与约束生成(C&CG)算法的实现逻辑,并尝试对模型参数或结构进行修改以观察结果变化,从而深化对鲁棒优化机制的理解。
内容概要:本文围绕具有源荷不平衡特性的配电网,研究智能软开关(Soft Open Point, SOP)与储能系统(Energy Storage System, ESS)的联合规划方法。通过构建优化模型,综合考虑配电网中分布式电源出力与负荷需求之间的空不匹配问题,利用智能软开关灵活调节功率流动的能力以及储能系统的能量移特性,实现对配电网潮流的有效调控,提升系统运行的经济性与可靠性。文中采用Matlab进行仿真编程,验证所提联合规划方案在降低网络损耗、改善电压质量、提高可再生能源消纳能力等方面的优越性能。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的高校研究生、科研人员以及从事智能配电网规划与运行工作的工程技术人员。; 使用场景及目标:①解决高比例分布式可再生能源接入背景下配电网源荷不平衡导致的电压越限与潮流倒送问题;②优化配置智能软开关与储能的位置和容量,以实现系统综合成本最小化与运行性能最优化;③为新型配电系统中柔性元件的协同规划提供技术参考与仿真工具支持。; 阅读建议:此资源以Matlab代码实现为核心载体,建议读者在理解数学模型与物理机理的基础上,结合实际算例(如IEEE 33节点系统)进行代码调试与结果分析,进一步掌握SOP与储能协同作用的内在机制,并可在此基础上拓展多目标优化、不确定性建模等高级功能。

65,209

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧