问题是例如:
    我有个文件a1  里面的内容是文本 1F3A
    我要把文件里面的文本 1F3A 读出来 写入到文件a2里面
    要求用二进制来存 1F3A 相当于存入 0001111100111010    我主要是不知道怎么 建立\写入 二进制文件
请各位指导一下

解决方案 »

  1.   

    最简单的方法,用C的I/O函数,还有Windows提供有一族I/O访问函数,如ReadFile
      

  2.   

    你可以用下面的函数实现:
    void f()
    {
        FILE *in,*out;
        int a;
        if((in=fopen("a1.txt","r"))==NULL)
        {
             cout<<"Error!Can not open file a1.txt"<<endl;
             return;
        }
        if((out=fopen("a2.dat","wb"))==NULL)
        {
             cout<<"Error!Can not create file a2.dat"<<endl;
             return;
         }
        fscanf(in,"%d",&a);
        fwrite(&a,sizeof(a),1,out);
        fclose(in);
        fclose(out);
    }
    这些基本上是用C语言实现的,至于纯粹的用C++来实现我就不太知道了,应该可以用CFile来实现,你可以看看msdn或问问别人。
      

  3.   

    谢谢楼上的,不过我是要用CFile来实现
      

  4.   

    读出文本会吧。
    atoi()转换一下。
    写入。
      

  5.   

    atoi不支持 把F 转换成1111
      

  6.   

    CFile fr, fw;
    if ( !fr.Open("a1.txt", CFile::modeRead | CFile::typeBinary) ) return;
    if ( !fw.Open("b2.bin", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary) ) {
    fr.Close();
    return;
    }
    int iCnt;
    char ch;
    while (1) {
    iCnt = fr.Read(&ch, 1);
    if (iCnt <= 0) break; if (ch >= '0' && ch <= '9') ch = ch - '0';
    else if (ch >= 'A' && ch <= 'F') ch = ch - 'A' + 10;
    else if (ch >= 'a' && ch <= 'f') ch = ch - 'a' + 10;
    else break;
    fw.Write(&ch, 1);
    } fr.Close();
    fw.Close();