作者在 2010-05-13 13:27:24 发布以下内容
#include "iostream.h"
#include "fstream.h"
#include "stdlib.h"
void main(void)
{
//打开制定的文件
fstream file("D:\\Personal\\桌面\\f1.txt",ios::in|ios::out|ios::binary);
if(!file)
{
cout<<"没有打开f1.txt\n";
abort();//用异常终止进程
}
for(int i=0;i<15;i++) //打开文件后先用write函数写入15个数字
{
file.write((char *)&i,sizeof(int));
//write函数,将指定长度的字符串输出到指定流
}
//用tellp函数记录下当前写指针的位置
streampos pos=file.tellp(); //返回一个long型值,用来表示当前指针的位置相距流开始位置的字节数
cout<<"Current byte number : "<<pos<<endl; //显示指针距离流开始的字节数
//显示的是60
for(i=15;i<45;i++) //又使用write函数向文件写入30个数字
{
file.write((char *)&i,sizeof(int));
//write函数,将指定长度的字符串输出到指定流
}
//使用seekp函数将写指针定位于前面记录下的位置,即写指针指向第一个写的15个数字的后面位置
file.seekg(pos); //把流指针设置到POS位置
file.read((char *)&i,sizeof(int));//每次读取1个整形的长度,基本整形是2个字节
//read函数从指定流中读取制定长度的字节数,存储到指定的字符串中
cout<<"The date stored is : "<<i<<endl; //输出读取到的数据
//显示的是15
file.seekp(0,ios::beg); //设置文件指针位于相对于流的开始位置偏移0字节长度
for(i=80;i<100;i++)
{
file.write((char *)&i,sizeof(int));
//从指定流读取制定长度的字节存储到制定字符串
}
file.seekp(pos); //设置指针指向的位置
file.read((char *)&i,sizeof(int));//从指定流中读取指定长度的字符串
cout<<"The date stored is : "<<i<<endl; //输出读取到的数据
//显示的是95
file.seekp(20,ios::cur); //设置指针位置为相对于当前位置后移20字节
file.read((char *)&i,sizeof(int));//从指定流中读取指定长度的字符串
cout<<"The date stored is : "<<i<<endl; //输出读取到的数据
//显示的是21
cout<<"Current byte number : "<<file.tellp()<<endl;
//显示的是88
//输出显示当前指针所在的位置
//使用close()函数关闭文件
file.close();
}
#include "fstream.h"
#include "stdlib.h"
void main(void)
{
//打开制定的文件
fstream file("D:\\Personal\\桌面\\f1.txt",ios::in|ios::out|ios::binary);
if(!file)
{
cout<<"没有打开f1.txt\n";
abort();//用异常终止进程
}
for(int i=0;i<15;i++) //打开文件后先用write函数写入15个数字
{
file.write((char *)&i,sizeof(int));
//write函数,将指定长度的字符串输出到指定流
}
//用tellp函数记录下当前写指针的位置
streampos pos=file.tellp(); //返回一个long型值,用来表示当前指针的位置相距流开始位置的字节数
cout<<"Current byte number : "<<pos<<endl; //显示指针距离流开始的字节数
//显示的是60
for(i=15;i<45;i++) //又使用write函数向文件写入30个数字
{
file.write((char *)&i,sizeof(int));
//write函数,将指定长度的字符串输出到指定流
}
//使用seekp函数将写指针定位于前面记录下的位置,即写指针指向第一个写的15个数字的后面位置
file.seekg(pos); //把流指针设置到POS位置
file.read((char *)&i,sizeof(int));//每次读取1个整形的长度,基本整形是2个字节
//read函数从指定流中读取制定长度的字节数,存储到指定的字符串中
cout<<"The date stored is : "<<i<<endl; //输出读取到的数据
//显示的是15
file.seekp(0,ios::beg); //设置文件指针位于相对于流的开始位置偏移0字节长度
for(i=80;i<100;i++)
{
file.write((char *)&i,sizeof(int));
//从指定流读取制定长度的字节存储到制定字符串
}
file.seekp(pos); //设置指针指向的位置
file.read((char *)&i,sizeof(int));//从指定流中读取指定长度的字符串
cout<<"The date stored is : "<<i<<endl; //输出读取到的数据
//显示的是95
file.seekp(20,ios::cur); //设置指针位置为相对于当前位置后移20字节
file.read((char *)&i,sizeof(int));//从指定流中读取指定长度的字符串
cout<<"The date stored is : "<<i<<endl; //输出读取到的数据
//显示的是21
cout<<"Current byte number : "<<file.tellp()<<endl;
//显示的是88
//输出显示当前指针所在的位置
//使用close()函数关闭文件
file.close();
}