STL中二进制文件的读写解决方案

STL中二进制文件的读写#includeiostream#includefstreamusingnamespacestdintmain(intargc,char*argv

STL中二进制文件的读写
#include   <iostream>
#include   <fstream>

using   namespace   std;

int   main(int   argc,   char   *argv[])
{
        float   data=3.14;
        fstream   file( "c:\\a.dat ",ios::binary|ios::out);
        if(!file)
        {
                cerr < < "failed   to   open   file " < <endl;
                system( "PAUSE ");
                return   1;
          }
        file < <   data;      
        system( "PAUSE ");
        return   EXIT_SUCCESS;
}
我分别用vc6和dev   c++编译
运行代码后   a.dat文件中怎么还是ASCII码啊?

我需要读写约一百万个单精度浮点数据   要是用文本太慢了
怎样实现真正的二进制读写呢?
请高手指点!

[解决办法]
file.write((char*)&data, sizeof(data));
[解决办法]
please do not use stream operator function such as < <
use write() instead