2 u011031312 u011031312 于 2013.06.11 11:22 提问

关于 VC++ 将 数据分成 2 半 输入到2个文件

数据的定义是: char AA[12012120]={0} ;

然后 在 fwrite 函数中, 新建一个文件并打开,以"wb" 方式 写入

然后 有一个 DWORD icount ; 这样一个定义是 数据的总长度(字节)

然后 ,请问能不能有什么办法,将这个数据 分成2半,写入2 个文件, 如果 fwrite达不到这个效果,请问还有其它函数可以达到吗

因为数据非常大,大的时候有几百M, 所以, 能不能以 数据偏移的方式,来写

以上

非常感谢!

2个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.01 18:30

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
注意:这个函数以二进制形式对文件进行操作,不局限于文本文件
返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际写入的数据项个数count。
说明:写入到文件的哪里? 这个与文件的打开模式有关,如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大。
fseek对此函数有作用,但是fwrite[1] 函数写到用户空间缓冲区,并未同步到文件中,所以修改后要将内存与文件同步可以用fflush(FILE *fp)函数同步。

可以跟fseek结合起来用的

John_ToString
John_ToString   2015.12.05 14:41

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); fseek跟前面的一块用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!