关于一个C++的问题,RETURN 0退出不正常

恐高的长颈鹿 恐高的长颈鹿 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
int bianhaochaxun()//查询商品——按编号查询
{
cout<<"请输入要查询的商品编号!"<<endl;
int bianhao1;
int bianhao2;
cin>>bianhao2;
shangpin a(0," ",0,0);
ifstream in("f1.txt",ios::binary);
if(!in)
{
cout<<"无法打开商品库,请告知管理员\n\n"<<endl;
return 0;
}
for(int i=0;i<=2000;i++)
{
in.seekg(sizeof(shangpin)*i,ios::beg);
in.read((char *)&a,sizeof(shangpin));
bianhao1=a.geibianhao();
//cout<<"编号1:"<<bianhao1<<endl;
//cout<<"编号2:"<<bianhao2<<endl;
if(bianhao2==bianhao1)
{
if(a.geicunzai()==1)
{
if(a.geikucun()>=1)
{
cout<<"存在性"<<a.geicunzai()<<endl;
a.show();
in.close();
return 0;
}
else
{
cout<<"抱歉,该商品已售完,请联系管理员补货!以下是商品信息!"<<endl;
a.show();
in.close();
return 0;
}
}
else
{
cout<<"抱歉,您查询的商品已不存在!"<<endl;
in.close();
return 0;
}
}
else
continue;
}
cout<<"您输入的商品编号有误!请重新查询"<<endl;
in.close();
return 0;
}
int shanchushangpin() //删除商品
{
int bianhao1;
int bianhao2;
cout<<"请输入要删除商品的编号:"<<endl;
cin>>bianhao2;
shangpin a(0,"",0,0);
fstream io("f1.txt",ios::in|ios::out|ios::binary);
if(!io)
{
cout<<"无法打开商品库,请告知管理员\n\n"<<endl;
return 0;
}
for(int i=0;i<=2000;i++)
{
io.seekg(sizeof(shangpin)*i,ios::beg);
io.read((char *)&a,sizeof(shangpin));
bianhao1=a.geibianhao();
if(bianhao1==bianhao2)
{
cout<<"查询到商品信息如下:"<<endl;
a.show();
cout<<"确认要删除请按1,否则按2"<<endl;
int banduan;
cin>>banduan;
if(banduan==1)
{
a.cuncunzai(0);
cout<<"删除成功!"<<endl;
io.seekp(sizeof(shangpin)*i,ios::beg);
io.write((char *)&a,sizeof(shangpin));
io.close();
return 0;
}
else
io.close();
return 0;
}
else continue;
}
cout<<"找不到该商品,请重新输入"<<endl;
io.close();
return 0;
}

就是这两个函数,在调试的时候,一但执行到函数的return 0语句,就提示已停止工作
然后就样
请教各位大大,这是什么问题啊。。。。。。。执行是没错的,在删除后再查询,确实商品的存在性也被改成了0的

这是我写的增加商品的函数,在这个存入以后,return 0,就没问题.....
int zengjiashangpin()								//增加商品
{
shangpin b(0," ",0,0);
int bianhao2;
string name2;
double jiage2;
int kucun2;
int xuanzhe;
while(1)
{
cout<<"请输入商品的编号:"<<endl;
cin>>bianhao2;
cout<<"请输入商品的名称:"<<endl;
cin>>name2;
cout<<"请输入商品的价格:"<<endl;
cin>>jiage2;
cout<<"请输入商品的进货量:"<<endl;
cin>>kucun2;
cout<<"请确认商品信息,确认请按1,重输请按2"<<endl;
cin>>xuanzhe;
if(xuanzhe==1)
{
b.cunbianhao(bianhao2);
b.cunname(name2);
b.cunjiage(jiage2);
b.cunkucun(kucun2);
cunru(b);
return 0;
}
else
{
system("cls");
continue;
}
}
}
...全文

相关推荐

c++primer第四版课后习题答案

c++primer第四版课后习题的答案,内容丰富,不容错过

buptwxt

exit和abort及return的区别

介绍C语言代码中的exit和abort及return的区别 exit() 结束当前进程/程序,在整个程序中,只要调用 exit ,就结束。 return() 是当前函数返回,当然如果是在主函数 main, 自然也就结束当前 进程了,如果不是,那就是退回上一层调用。 在多个进程时.如果有时要检测某个进程是否正常退出的.就要用到这个进程 的返回值。exit(0)表示进程正常退出. 返回 0; exit(1)表示进程非正常退出. 返回 1。

朝霞红漫天

C++primer 课后题答案

C++primer 课后题答案 目录 第一章 快速入门 2 第二章 变量和基本类型 7 第三章 标准库类型 13 第四章 数组和指针 21 第五章 表达式 31 第六章 语句 37 第七章 函数 37 第八章 标准IO库 37 第九章 顺序容器 43 第十章 关联容器 60 第十一章 泛型算法 75 第十二章 类和数据抽象 86 第十三章 复制控制 94 第十四章 重载操作符与转换 102 第十五章 面向对象编程 116 第十六章 部分选做习题 133 第十七章 用于大型程序的工具 138 第十八章 特殊工具与技术 138

weichun0713

C++通过TerminateProess结束进程实例

主要介绍了C++通过TerminateProess结束进程实例,是Windows应用程序设计中非常实用的技巧,需要的朋友可以参考下

weixin_38654915

C++ main函数的几点细节

主要介绍了C++ main函数的几点细节,帮助大家更好的理解和学习C++,感兴趣的朋友可以了解下

weixin_38656142
评论 33
收藏 已收藏
分享
返回顶部
恐高的长颈鹿
C++ 语言 65,214 成员 250,514 内容