C++に基づいてファイルの明文とバイナリの読み書きを実現する


仕事中に大量のファイルの読み書き操作が含まれているので、ここで忘れておきます.ファイルの読み書きは主にC++のファイルフロー操作を利用する
int xxx = 0;//       

    //    
    string strTemp = strFolder + ("xxx.xxx"); //               
    ofstream writeFile(strTemp, ios::out);    //  
    if (writeFile.is_open())
    {
        writeFile << "xxx = " << xxx<< '
'
;// //... } writeFile.close();

明文の読み取りはここでは書かれていません.スペース、タブ、改行、中国語の文字などの理由で、明文の読み取りは便利な書き込みフォーマットを制定しなければならないので、明文の読み取りを容易にすることができません.
//     
int nTemp = xx;     //       ,     
double dTemp = xx;  //       ,     

    //    
    string strFileOut = ("xxx.xxx");//      
    ofstream writeFile(strFileOut, ios::out | ios::binary);//     
    if (writeFile.is_open())
    {
        writeFile.write((char *)(&nTemp), sizeof(nTemp));
        writeFile.write((char *)(&dTemp), sizeof(dTemp));
        writeFile.close();
    }

バイナリ書き込みは主に中間の関数フォーマットに注意し,変数名を置き換えるだけで便利である.
//     
    string strFileIn = ("xxx.xxx");
    ifstream readFile(strFileIn, ios::in | ios::binary);//     
    if (readFile.is_open())
    {
        int nTemp;    //       
        double dTemp; //       
        readFile.read((char *)(&nTemp), sizeof(nTemp));
        readFile.read((char *)(&dTemp), sizeof(dTemp));
        readFile.close();
    }

バイナリ読み取りと書き込みの差は多くなく、どのように書くかはどのように読むかです.