注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

数据挖掘

学习数据挖掘

 
 
 

日志

 
 

test  

2012-04-05 22:16:07|  分类: C++基本技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
void deleteline();
const int num=10;
const char *file="00_1.txt";
class people
{
public:
char name[num];
int age;
float pay;
};
int main()
{
people pp={"陈涛",25,735.46f};
ofstream fout(file,ios::out|ios::binary);
fout.write((char*)&pp,sizeof pp);
fout.close();
people pp1={"李力持",45,1069.23f};
    ofstream fout1(file,ios::in|ios::out|ios::binary);
fout1.seekp(sizeof pp,ios::beg);
fout1.write((char*)&pp1,sizeof pp1);
fout1.close();
fstream inout;
inout.open(file,ios::in|ios::out|ios::binary);
cout<<fixed;
cout<<pp.name<<endl;
int count=0;
if(inout.is_open())
{
inout.seekp(0);
cout<<"当前内容为:"<<file<<"\n";
cout<<pp.name<<count<<endl;
while(inout.read((char*)&pp,sizeof pp))
{
cout<<count++<<":"<<setw(num)<<pp.name<<":"<<setprecision(0)<<setw(12)
 <<pp.age<<setprecision(2)<<setw(16)<<pp.pay<<endl;
}
cout<<pp.name<<endl;
cout<<pp1.name<<endl;
if(inout.eof())
{
inout.clear();
}
else
{
        cerr<<"读取错误"<<file<<"\n";
exit(1);
}
}
else
{
    cerr<<"不能打开文件"<<endl;
exit(1);
}
cout<<"输入你希望改变的编号\n";
long line;
cin>>line;
deleteline();
cout<<pp.name<<endl;
streampos place=line*sizeof pp;
if(line<0||line>count)
{
cerr<<"无效编号\n";
exit(1);
}
cout<<pp.name<<endl;
inout.seekg(place);
cout<<pp.name<<endl;
if(inout.fail())
{
cerr<<"尝试查询操作失败\n";
exit(1);
}

    inout.read((char*)&pp,sizeof pp);
cout<<pp.name<<endl;
cout<<"你的选择为:\n";
cout<<line<<":"<<setw(num)<<pp.name<<":"<<setprecision(0)<<setw(12)
 <<pp.age<<setprecision(2)<<setw(16)<<pp.pay<<endl;
if(inout.eof())
{
inout.clear();
}
cout<<"输入姓名:";
cin.get(pp.name,num);
deleteline();
cout<<"输入年龄:\n";
cin>>pp.age;
cout<<"输入薪水:\n";
cin>>pp.pay;
inout.seekp(place);
inout.write((char*)&pp,sizeof pp)<<flush;
if(inout.fail())
{
cerr<<"尝试写入失败\n";
exit(1);
}
count=0;
inout.seekg(0);
cout<<"当前内容:"<<file<<"\n";
while(inout.read((char *)&pp, sizeof pp))
{
cout<<count++<<":"<<setw(num)<<pp.name<<":"<<setprecision(0)<<setw(12)
 <<pp.age<<setprecision(2)<<setw(16)<<pp.pay<<endl;
}
inout.close();
cout<<"完成!"<<endl;
return 0;
}
void deleteline()
{
while(cin.get()!='\n')
continue;
}
  评论这张
 
阅读(106)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017