ofstream文件输出流把二进制数据写入文件

1、添加头文件

#include <fstream>
#include <sstream>
 
using namespace std;

2、执行文件打开写入关闭操作

//在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,
//就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定
 
//ofstream         //文件写操作 内存写入存储设备   
//ifstream         //文件读操作,存储设备读区到内存中  
//fstream          //读写操作,对打开的文件可进行读写操作
 
//(一)打开文件的方式在ios类(所以流式I/O的基类)中定义,有如下几种方式:
//ios::in	为输入(读)而打开文件
//ios::out	为输出(写)而打开文件
//ios::ate	初始位置:文件尾
//ios::app	所有输出附加在文件末尾
//ios::trunc	如果文件已存在则先删除该文件
//ios::binary	二进制方式 这些方式是能够进行组合使用的,以“或”运算(“|”)的方式:例如
 
//(二)、保护模式
//#define _SH_DENYRW      0x10    /* deny read/write mode */拒绝对文件进行读写 
//#define _SH_DENYWR      0x20    /* deny write mode */拒绝写入文件 
//#define _SH_DENYRD      0x30    /* deny read mode */拒绝文件的读取权限 
//#define _SH_DENYNO      0x40    /* deny none mode */读取和写入许可 
//#define _SH_SECURE      0x80    /* secure mode */共享读取,独占写入 
//注意:假设A进程以_SH_DENYRW 打开,那么是B进程不能再对文件进行读写。
 
ofstream ofs;							//打开文件用于写,若文件不存在就创建它
 
locale loc = locale::global(locale("")); 		       //要打开的文件路径含中文,设置全局locale为本地环境 
 
ofs.open("./out.bin",ios::out| ios::app | ios::binary,_SH_DENYNO); //输出到文件 ,追加的方式,二进制。 可同时用其他的工具打开此文件
 
locale::global(loc);					      //恢复全局locale
 
if (!ofs.is_open())return;	//打开文件失败则结束运行  
 
for (int i=0;i<100;i++)
{
	char* buffer = "fdsfdsfdsfdsfdsfds\n";
	ofs.write(buffer, sizeof(char)*17); 
	ofs.flush();
	Sleep(1000);
}
 
ofs.close();  
ofstream  file;
locale::global(locale(""));//将全局区域设为操作系统默认区域
string strFileName = "e:\\abc.bin";
file.open(strFileName.c_str());
locale::global(locale("C"));// 还原全局区域设定 
 
std::ostringstream   str("");
str	<<	"123" << "\n";
file.write(str.str().c_str(),str.str().length());
file.close();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值