write()二进制方式写文件

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int a[10]={0};
for(int i=0;i<9;i++)
{
a[i+1]=a[i]*10+i+1;
cout<<a[i]<<endl;
}
ofstream rs("ok2002com.txt");
ofstream rs2("ok2002com.bin",ios::binary);
for(int i=0;i<9;i++)
{
rs<<a[i]<<" ";
rs2.write((char*)(&a[i]),sizeof(a[i]));
cout<<"rs.tellp("<<i<<")="<<rs.tellp()<<",";
cout<<"rs2.tellp("<<i<<")="<<rs2.tellp()<<endl;
}
rs.close();
rs2.close();
//cin>>i;

}


●文本方式存储与二进制方式存储的一些区别:

1、文本方式存储
每个数据在文件中的长度不等,所占的字节数与数据的位数有关,数据间必须用分隔符(如空格)隔开;

2、二进制方式存储
每个数据在文件中的长度相同,所占字节数仅与数据类型有关,数据间不需要加入分隔符。

●二进制读写文件的优点
(1)便于对数据进行随机访问;
(2)存取效率高;
(3)可以对文件进行压缩处理;
(4)存储密度大;
(5)数据文件便于保密;

●二进制读写文件需了解:
(1)二进制读写文件兼容性低;
(2)二进制读写文件,不能用字处理程序进行阅读、编辑或修改;

●到底用文本方式存储较好?还是用二进制方式存储较好?
通常将文本信息以文本文件方式存储,而将数值信息以二进制方式存储。

●什么是文本信息?什么是数值信息?
文本信息:电话号码、新闻、邮政编码等等;共同属性:数字不参与计算;
数值信息:产品销售价格、公司总资产、公司年纯收入等等。共同属性:数字参与计算;
需注意:文本信息与数值信息没有绝对的界线,二者可能会相互转换,如:仅仅公布公司季度获利情况,可存储为文本信息,因为其中的金额此次不用于运算。
*/


c++中write是用于向文件中写数据的函数。
函数原型:ostream& write (const char* s, streamsize n);
参数:s是数据源指针,n表示字节数
返回值:返回 ostream 对象的引用 (*this).
注意:使用需要#include <fstream>
实例:
#include <fstream> // std::ifstream, std::ofstr
// Copy a file
#include <fstream> // std::ifstream, std::ofstream
int main () {
std::ifstream infile ("test.txt",std::ifstream::binary);
std::ofstream outfile ("new.txt",std::ofstream::binary);
// get size of file
infile.seekg (0,infile.end);
long size = infile.tellg();
infile.seekg (0);
// allocate memory for file content
char* buffer = new char[size];
// read content of infile
infile.read (buffer,size);
// write to outfile
outfile.write (buffer,size);
// release dynamically-allocated memory
delete[] buffer;
outfile.close();
infile.close();
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值