有一段代码老是出现无限循环,帮忙看一下
void Delete(fstream f)
{
int choice8; //用于询问是否要继续删除文件
do
{
AnsSys question;
int k=1; //显示问题的序号
int choice7;
f.seekp(0,ios::beg);
long posEnd=f.tellp();
f.seekp(0,ios::beg);
do //把问题显示出来,方便用户选择要删除哪一个问题
{
f.read((char*)(&question),sizeof(AnsSys));
cout<<k++<<"."<<question.Ques<<endl;
}while(f.tellp()!=posEnd);
AnsSys *temp=new AnsSys[k] ; //建立一个数组,用于从磁盘文件中导出所有的问题
f.seekp(0,ios::beg);
int i=0;
do
{
f.read((char*)(&question),sizeof(AnsSys));
temp[i]=question; //从磁盘文件中导出所有问题
i++;
}while(f.tellp()!=posEnd);
cout<<"请输入您所要删除的问题的序号"<<endl;
while(cin>>choice7) //接收并判断所要删除的问题序号
{
if(choice7<k||choice7>0)
break;
else
cout<<"输入错误,请重新输入"<<endl;
}
for(int j=choice7-1;j<k-1;j++) //后一个问题覆盖前一个,也就是删除
{
temp[j]=temp[j+1];
}
FILE *fp=fopen("d:\\hello.bat","w"); //关闭在重新打开,清空文件中保存的数据
fclose(fp);
f.seekp(0,ios::beg);
int l=0;
do //把覆盖好的数组写入文件
{
f.write((char *)(&temp[l]),sizeof(AnsSys));
l++;
}while(l!=k-2);
cout<<"删除完毕,按y选择继续删除,按任意健退出"<<endl;
cin>>choice8;
}while(choice8!='y'||choice8!='Y');
return;
}
...全文
相关推荐
Python中无限循环需要什么条件
在本篇文章里小编给大家分享的是关于Python中无限循环的条件的相关文章,需要的朋友们可以参考下。
AutoJs源码-无限循环点击(无障碍服务)
AutoJs源码-无限循环点击(无障碍服务)。本资源购买前提醒:本源码都是实际autojs项目模板,安装好autojs直接运行即可打开。1、支持低版本autojs。2、资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!。3、安装过程详见具体资源,不会使用autojs谨慎下载
按键精灵无限循环教程
按键精灵无限循环教程
用几行代码做一个十分简单的无限循环播放的走马灯例子.rar
用几行代码做一个十分简单的无限循环播放的走马灯例子.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
AndroidViewPager实现无限循环轮播Banner
用原生控件ViewPager实现无限循环轮播banner


