企业管理程序数据删除代码
2013-06-16 22:34
429 查看
之前在那个程序中有输入,有排序,有统计,但是我们要删除其中的一条记录,如何删除呢?今天刚写的代码,包含了注释,自己看看吧~ while(chose==3) { int tempcount=0; ifstream infile("data.txt"); //绑定文件 string arr[1000]; string del_str; string _str; infile>>_str; if(_str.empty()) { cout<<"无数据!程序即将退出!"<<endl; break; } cout<<_str<<endl;//数据读入成功! cout<<"请输入你要删除的职工号"<<endl; cin>>del_str; del_str+="&"; string::iterator p=_str.begin(); string::iterator first=p; //记住当前p所指向的字符串(str的首字符) string::iterator last=p; //用于尾部的指针 int ix=0; while(*p!=NULL) { string tempstr; //临时str存放的是当前指向的属性,与del_str进行比较 arr[ix]=*p;////////////////////////////////////////////////// ++p; //将数据存进数组 ++ix; /////////////////////////////////////////////////// if(*p=='$') { ++tempcount; ++p; for(int i=1;i<ix;i++) { arr[0]+=arr[i]; } tempstr=arr[0]; cout<<tempstr<<endl; if(tempstr==del_str)//如果当前的临时变量等于需要删除的变量 { tempcount=1; //每次找到匹配头的时候就将计数器重新置为1 因为找到了职工号,所以$已经有了1个,所以置为1而不是0 while(*p!='$'||tempcount!=6) //只要我们的$符号不为6,或者我们的*p还不为$,我们就继续执行循环体中的语句。 { ++p; //一上来我们就要把指针p加一,这样我们就能够计算$符号的个数,来决定我们这个职工的所有属性到底指完了没。(☆_☆)/~~ if(*p=='$') { ++tempcount; } } last=p; //最后,我们将last指针变为P当前所指的数据,这样我们就完成了first和last指针的正确数据指向! p=_str.erase(first,last+1);//调用string类型的函数来删除两个指针中间的值,+1是为了删除最后一个$。↖(^ω^)↗ } ix=0; first=p; //在这里我们将first的指针指向P,否则会产生指针永远指向头的情况,会造成只能顺序删除而不能随机删除的情况, } //这个情况debug了我一个小时,把first指针给忘了……细心很重要啊!(ー_ー)!! } ofstream("data.txt").close(); //清空原数据 ofile.open("data.txt",ofstream::out | ofstream::app); //重新打开文件 ofile<<_str; //将_str中的内容全部写入文件,这样做效率太低,不过我暂时没什么好办法,希望大神能给出更完美的算法,谢谢! chose=0; //给予跳出循环的条件,完成~!`(*∩_∩*)′ } }
相关文章推荐
- 学生管理系统,用Java代码连接数据实现数据的添加、更新、删除操作
- 大家都在用PDA条码扫描枪管理企业仓库 PDA无线数据采集程序
- Apache Shiro+SpringMVC+Hibernate Search+Hibernate+Bootstrap企业信息管理系统基础框架搭建整合实例代码教程
- 企业数据总线(ESB)和注册服务管理(dubbo)的区别
- iOS程序-UITableView分组展示数据 - 纯手写代码
- C++文本查询程序 不要定义类和智能指针管理数据 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- C++文本查询程序 定义类管理数据 用引用共享数据 不用智能指针 C++Primer练习12.27
- C++文本查询程序 定义类管理数据 用智能指针 C++Primer练习12.30
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- 实验 3.1.5 查看代码中各数据存储位置 示例程序: mem_add.c 1. 在自己的机器上运行示例程序。 2. 分析实验结果,图示程序运行时各数据位置。
- C++文本查询程序 定义类管理数据 用智能指针 C++Primer练习12.30
- C++文本查询程序 定义类管理数据 用引用共享数据 不用智能指针 C++Primer练习12.27
- js动态添加删除,后台取数据(示例代码)
- [编写高质量代码:改善java程序的151个建议]建议68 频繁插入和删除时使用LinkedList
- 用Nhibernate怎么实现数据的添加、删除、修改简单程序
- 栈区,堆区,全局区,文字常量区,程序代码区详解(程序中不同类型数据所在区)
- SequenceInputStream类的简单介绍。以及用该类合并集合文件数据的程序代码。
- 用Nhibernate怎么实现数据的添加、删除、修改简单程序
- [Android] 联系人管理程序代码(UI较好) 代码+图
- Action管理数据表的增加删除和修改工作的跳转和调用执行业务函数