下面作为普通文件输出
FILE *fin,*fout
void main()
{
int c
fin=fopen( "duck.jpg","rb")// 作为2二进制文件打开
fout=fopen("tmp.jpg","wb")
while(1){
c=fgetc(fin) // 一个字节一个字节地读入
if (feof(fin)) break// 直到EOF
fputc ( c , fout )// 改此句,让它符合数据库约定。
}
}
你的class里面成员也有class,所以直接用write函数可能会出问题,对于这种情况可以使用MFC提供的“序列化”的功能,把一个class写入二进制文件如果class里面的成员全是基本数据类型,用write函数写入文件不会出问题。
如果你的文件中只存字符串的话,那就算存成二进制文件,它实际上还是ASCII码文件。但我还是给一个例子吧。CFile file
file.Open("d:/a",CFile::modeWrite|CFile::modeCreate|CFile::typeBinary)
file.Seek(0,CFile::begin)
file.Write("123",3)
file.Close()
虽然我用了CFile::typeBinary表示写一个二进制文件,但如果文件中只有字符串的话,这个a文件实际上还是ASCII码文件,你用记事本都可以正常打开。
但如果文件中确实包括了二进制数据的话,比如
int a=1
file.Write(&a,sizeof(a))
的话,用记事本打开就会有乱码了,这时候就要用二进制编辑器打开,比如UltraEdit。
另外,读取文件时,要用Open(文件名,CFile::modeRead)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)