标题:怎样删除文件中的某个数据和更新某个数据
只看楼主
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
结帖率:62.5%
已结贴  问题点数:20 回复次数:5 
怎样删除文件中的某个数据和更新某个数据
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class Staff
{
protected:
    int num,age;
    string name;
public:
   
    void fp()
    {
        ofstream ap;
        ap.open("staff.txt");
        if(!ap)
        {
            cout<<"打开失败";
            exit(1);
        }
        ap.close();
    }
    void input()
    {
        ofstream ap("staff.txt");
        cout<<"输入名字"<<endl;
        cin>>name;
        cout<<"编号"<<endl;
        cin>>num;
        cout<<"年龄"<<endl;
        cin>>age;
        ap<<"名字"<<name<<" "<<"编号"<<num<<" "<<"年龄"<<age;
    }
    void show()
    {
            string s;
    ifstream fp;
    fp.open("staff.txt");
    while(getline(fp,s))
    cout<<s<<endl;
    fp.close();
    }

};
class engieer:public Staff
{
public:
    string major;
    string workname;
    void input1()
       {
        ofstream ap("staff.txt",ios::out|ios::app);
          cout<<"请输入数据"<<endl;
          cout<<"编号"<<endl;cin>>num;
          cout<<"年龄"<<endl;cin>>age;
          cout<<"名字"<<endl;cin>>name;
          cout<<"专业"<<endl;cin>>major;
          cout<<"职称"<<endl;cin>>workname;
           ap<<"编号:"<<num<<" "
               <<"年龄"<<age<<" "
               <<"名字"<<name<<" "
               <<"专业"<<major<<" "
               <<"职称"<<workname<<" "<<endl;
           ap.close();
       }

};
class leader:public Staff
{
public:
    string bm;//部门
    string zc;//职称
    void input2()
    {
        ofstream ap("staff.txt",ios::out|ios::app);
          cout<<"请输入数据"<<endl;
          cout<<"编号"<<endl;cin>>num;
          cout<<"年龄"<<endl;cin>>age;
          cout<<"名字"<<endl;cin>>name;
          cout<<"部门"<<endl;cin>>bm;
          cout<<"职称"<<endl;cin>>zc;
            ap<<"编号:"<<num<<" "
               <<"年龄"<<age<<" "
               <<"名字"<<name<<" "
               <<"部门"<<bm<<" "
               <<"职称"<<zc<<" "<<endl;
           ap.close();
    }

};

class company:public Staff
{
public:   
    int g;
    Staff w;
    static int j;
    static int k;
    engieer a[1000];
    leader b[100];
    void add();//增加
    void new1();//更新
    void look();//查询
    void del();//删除
    void cz();
};
int company::j=0; int company::k=0;
void company::add()
{
    int i;
    cout<<"请选择增加项目1.工程师2.主任:"<<endl;
    cin>>i;
    if(i==1)
    {
         a[j].input1();
         j++;
    }
    else if(i==2)
    {
        b[k].input2();
        k++;
    }
    else cout<<"输入错误....."<<endl;
}
void company::look()
{
    w.show();
}
void company::new1()
{
   
}
void company::del()
{
}

void company::cz()     //重组文件
{
    cout<<"重组数据就是删除原文件全部内容,并且重新写入数据,请谨慎!"<<endl;
    int i;
    cout<<"输入0退出,输入1继续"<<endl;
    cin>>i;
    cout<<"                     "<<endl;
    if(i==0) return;
ofstream fp;      
     fp.open("staff.dat",ios::trunc);
      if(!fp)
          cout<<"文件写入错误!"<<endl;
       cout<<"文件重组成功!"<<endl<<endl<<endl;




     fp.close();
   
}
int main()
{
    int w;
    company c;
    for(;;)
    {
   
    cout<<"请选择"<<endl;
    cout<<"1.增加"<<endl;
    cout<<"2.查询"<<endl;
    cout<<"3.更新"<<endl;
    cout<<"4.删除"<<endl;
    cin>>w;
    switch(w)
    {
    case 1:c.add();break;
    case 2:c.look();break;
    case 3:c.new1();break;
    case 4:c.del();break;
    default:cout<<"输入错误.......";break;
    }
    }
    return 0;
}

搜索更多相关主题的帖子: include public 
2013-12-30 23:51
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:10 
那得看你怎么存储了

我行我乐
我的博客:
http://blog.yuccn. net
2013-12-31 08:34
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:10 
https://bbs.bccn.net/thread-425513-1-1.html
请不要重复开贴

另外,我一直很纳闷一个问题...
我记的我五六天之前,我见过你的这段代码...

当时我记得我回复过,说"这么复杂的虚继承都玩出来了,却不会数据结构里最基本的增删改查?我真心不信..."
不知道为什么,找不到我的回复了,呵呵
可能是你写继承的时候,随手写了个虚继承,当时我又没仔细看你的代码,让我误以为你是抄的吧...

[ 本帖最后由 peach5460 于 2013-12-31 10:21 编辑 ]

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-12-31 10:17
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分:0 
从新写过的,不会删除文件中的数据,求解答

新手请多多指教
2013-12-31 14:44
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分:0 
回复 2楼 yuccn
我先把数据存储进staff.txt中,在删除文件数据,或修改时先取出数据,删除原来的staff文件,从新建立新的staff把修改的或删除后的数据存入staff中。但是不会怎样写,求解答

新手请多多指教
2013-12-31 14:50
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
得分:0 
回复 3楼 peach5460
从新写的,原来输出的是想输入一个编号,然后取出文件中相同编号的数据,但是不会写就重新写个简单的了

新手请多多指教
2013-12-31 14:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-425925-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046890 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved