C++下按二进制读写文件

来源:互联网 发布:淘宝网浮针进针器 编辑:程序博客网 时间:2024/06/06 02:59

今天学会了如何用C++进行二进制存储文件,和seven在QQ上讨论了很久,一直没有做出来,后来发现是一个函数的问题。


估计很多人都知道用

ofstream out("test.binary",ios::binary|ios::out);

和这个

ifstream in("test.binary",ios::binary|ios::in);

这两个是设定文件的读取和写入的方式,这里是按照二进制,不过有一点很重要,就是不能直接用out <<  和 in>>,需要用read 和write函数,下面是个简单的例子

#include <iostream>#include <string>#include <fstream>using namespace std;void  Save(){ofstream out("test.binary",ios::binary|ios::out);short b=-189;out.write((const char*)&b,sizeof(b));float a;for(int i=0;i<10;i++){a=0.128937;out.write((const char*)&a,sizeof(a));}out.close();out.clear();}void Load(){ifstream in("test.binary",ios::binary|ios::in);short u1;in.read((char*)&u1,sizeof(u1));cout<<u1<<endl;for(int i=0;i<10;i++){float aa;in.read((char*)&aa,sizeof(aa));cout<<aa<<endl;}in.close();in.clear();}int main(){int upset;Save();Load();cin>>upset;return 0;}


反正这样存放肯定是没有问题的,读出也没有问题,忙了一天,居然就这么简单,还让我费老大劲考虑用什么byte数组,什么类型转换,真是无语。

好吧,以后别再问seven这种弱智问题了。


 

原创粉丝点击