上海市汤臣一品:vc 读写二进制文件的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 15:33:22
如何将一串字符存储成二进制文件,而且如何读写?
我是菜鸟,请问你用的是不是VC啊?而且那读二进制文件呢?

#include<fstream.h>
void main()
{
char str[80];
char temp[80];
fstream f("text.txt",ios::out|ios::binary);
if(f.fail()){cout<<"error";return;}
f.write((char *) &str,sizeof(str);
f.close();
f.open("text.txt",ios::in|ios::binary);
if(f.fail()){cout<<"error";return;}
f.read((char *)& temp,80);
cout<<temp;
f.close();
}

如果你的文件中只存字符串的话,那就算存成二进制文件,它实际上还是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)