标题:
c++与文件?
[打印本页]
作者:
allen
时间:
2005-6-27 20:48
标题:
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;
}
如何在写如文件时,使编号自动生成?
作者:
Nothing
时间:
2005-6-27 23:21
读出以前的编号,取最大值,然后++,就可以了
作者:
allen
时间:
2005-6-28 18:41
#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定义对象啊?
作者:
Nothing
时间:
2005-6-28 22:19
其实直接用fstream虽然很方便,在自定义类型方面和直接使用函数和指针操作的方便性差远了,建议你还是使用文件函数吧。你的内容可以自定义一个类型或是链表什么的,使用起来非常方便。
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0