发新话题
打印

c++与文件?

c++与文件?

人员编号在生成信息时同时生成,每输入一个人员信息编号顺序加1。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int id;
class person
{
protected:
        int num;          //编号
          string name;      //姓名
        int level;//(1-经理,2-兼职技术人员,3-销售经理,4-兼职推销员)
        float pay;          //月薪
public:
        virtual void amount() const=0;    //月薪总额
        virtual void display()            //显示信息
        {              cout<<"姓名"<<name<<endl;
                cout<<"级别"<<level<<endl;
                cout<<"月薪"<<pay<<endl;
        }
        void input()                      //录入信息
        {
                cout<<"输入姓名"<<endl;
                cin>>name;
                cout<<"输入级别"<<endl;
                cin>>level;
                cout<<"输入月薪"<<endl;
                cin>>pay;
        }
};
class manager:public person      //经理
{
public:
        virtual void amount() const {cout<<"";}
        void add()
        {
                ofstream manfile;
                manfile.open("manager.txt",ios:ut);
                person::input();
                manfile<<name<<level<<pay;
                manfile.close();
        }
};
int main()
{
        return 0;
}
如何在写如文件时,使编号自动生成?

TOP

读出以前的编号,取最大值,然后++,就可以了
换个头像,看见广告就眼红,直接封ID。

TOP

#include <iostream>
#include <fstream>
using namespace std;
int main()
{       
int s1;
fstream file1;
file1.open("f1.txt",ios:ut|ios::in);  //f1.txt已经有数据为0
                        if(!file1)
                        {
                            cout<<"文件f1打开有误"<<endl;
                            exit(1);
                        }
                        file1>>s1;
                       
                        s1=s1+1;
                        cout<<s1<<endl;
                        file1<<s1;
                        file1.close();
                        return 0;
}
我想把f1.txt中的数据读出来,然后在+1,最后在赋值到f1.txt中去.
前面两步都对,最后赋值不是写不进去,就是在原由的数据后面写进乱代码?我想把原来的数据覆盖掉.
是不是不能用ifstream定义对象啊?

TOP

其实直接用fstream虽然很方便,在自定义类型方面和直接使用函数和指针操作的方便性差远了,建议你还是使用文件函数吧。你的内容可以自定义一个类型或是链表什么的,使用起来非常方便。
换个头像,看见广告就眼红,直接封ID。

TOP

发新话题