c++二进制文件输入输出
来源:互联网 发布:java 日期选择控件 编辑:程序博客网 时间:2024/05/01 08:36
#include <fstream>
#include <iostream>
using namespace std;
struct student
{int num;
char name[20];
float score;
};
int main( )
{ int i;
student stud[5]={1001,"Li",85,1002,"Fun",97.5,1004,"Wang",54,
1006,"Tan",76.5,1010,"ling",96};
fstream iofile("stud.dat",ios::in|ios::out|ios::binary);
//用fstream类定义输入输出二进制文件流对象iofile
if(!iofile)
{cerr<<"open error!"<<endl;
abort( );
}
for(i=0;i<5;i++)//向磁盘文件输出个学生的数据
iofile.write((char *)&stud[i],sizeof(stud[i]));
student stud1[5]; //用来存放从磁盘文件读入的数据
for(i=0;i<5;i=i+2)
{iofile.seekg(i*sizeof(stud[i]),ios::beg); //定位于第,2,4学生数据开头
iofile.read((char *)&stud1[i/2],sizeof(stud1[0]));
//先后读入个学生的数据,存放在stud1[0],stud[1]和stud[2]中
cout<<stud1[i/2].num<<" "<<stud1[i/2].name<<" "<<stud1[i/2].score<<endl;
//输出stud1[0],stud[1]和stud[2]各成员的值
}
cout<<endl;
stud[2].num=1012; //修改第个学生(序号为)的数据
strcpy(stud[2].name,"Wu");
stud[2].score=60;
iofile.seekp(2*sizeof(stud[0]),ios::beg); //定位于第个学生数据的开头
iofile.write((char *)&stud[2],sizeof(stud[2])); //更新第3个学生数据
iofile.seekg(0,ios::beg); //重新定位于文件开头
for(i=0;i<5;i++)
{iofile.read((char *)&stud[i],sizeof(stud[i])); //读入5个学生的数据
cout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<endl;
}
iofile.close( );
return 0;
}
#include <iostream>
using namespace std;
struct student
{int num;
char name[20];
float score;
};
int main( )
{ int i;
student stud[5]={1001,"Li",85,1002,"Fun",97.5,1004,"Wang",54,
1006,"Tan",76.5,1010,"ling",96};
fstream iofile("stud.dat",ios::in|ios::out|ios::binary);
//用fstream类定义输入输出二进制文件流对象iofile
if(!iofile)
{cerr<<"open error!"<<endl;
abort( );
}
for(i=0;i<5;i++)//向磁盘文件输出个学生的数据
iofile.write((char *)&stud[i],sizeof(stud[i]));
student stud1[5]; //用来存放从磁盘文件读入的数据
for(i=0;i<5;i=i+2)
{iofile.seekg(i*sizeof(stud[i]),ios::beg); //定位于第,2,4学生数据开头
iofile.read((char *)&stud1[i/2],sizeof(stud1[0]));
//先后读入个学生的数据,存放在stud1[0],stud[1]和stud[2]中
cout<<stud1[i/2].num<<" "<<stud1[i/2].name<<" "<<stud1[i/2].score<<endl;
//输出stud1[0],stud[1]和stud[2]各成员的值
}
cout<<endl;
stud[2].num=1012; //修改第个学生(序号为)的数据
strcpy(stud[2].name,"Wu");
stud[2].score=60;
iofile.seekp(2*sizeof(stud[0]),ios::beg); //定位于第个学生数据的开头
iofile.write((char *)&stud[2],sizeof(stud[2])); //更新第3个学生数据
iofile.seekg(0,ios::beg); //重新定位于文件开头
for(i=0;i<5;i++)
{iofile.read((char *)&stud[i],sizeof(stud[i])); //读入5个学生的数据
cout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<endl;
}
iofile.close( );
return 0;
}
- c与c++输入输出二进制文件的异同
- c++二进制文件输入输出
- C输入输出
- C输入输出
- C 输入输出
- C输入输出
- C输入输出
- C-输入输出
- C输入输出
- C 输入输出
- C输入输出
- 【C++】输入输出
- C语言二进制文件读写
- c读写二进制文件
- C++------二进制文件的操作
- c/c++读取二进制文件
- c/c++ 二进制文件读写
- c语言二进制文件加密
- 针对“微博关注”无法嵌入在Visualforce Page的解决方案
- android手机插入耳机,播放外音
- 给2013届毕业生的29条建议
- Oracle常见错误问题收集和解决方案
- 不做开发好多年,最近又研究Access了!
- c++二进制文件输入输出
- MongoDB数据库的安装,数据操作,
- iOS开发笔记--TableView 详细解释
- TCP 三次握手
- 显示驱动:FrameBuffer,libggi,vga三种图形驱动
- 让win7保持素颜,让你不用再等你的电脑化妆
- usb camera 成功
- AndroidMainfest文件中常用android属性
- java连接DB2数据库