comment créer de la mémoire tampon en c++ pour créer un nouveau fichier

Jetez un oeil sur le code. Je suis un débutant et c'est la première fois que je suis entrain de créer un tampon en C++. Comment créer de la mémoire tampon en C++ pour créer un nouveau fichier après la lecture de l'ancien contenu dans la mémoire tampon, et en ignorant la partie qui est à supprimer tout en tronquant les anciennes données et de stocker le contenu de la mémoire tampon?

int main() {
    Admin item; //Admin is a class
    ios::pos_type pos;    
    int productId;
    char *ch; //pointer to create buffer
    int length;

    cout << "Enter Product Id of item to delete: ";

    cin >> productId;

    ifstream readFile("Stock.dat", ios::binary | ios:: in | ios::out);

    while (readFile) {
        readFile.read(reinterpret_cast<char*>(&item), sizeof(Admin));

        if (item.getStatus() == productId) {            
            pos = readFile.tellg() - sizeof(Admin);
            break;
        }
    }

    readFile.close();

    ifstream readNewFile("Stock.dat", ios::binary | ios:: in | ios::out);

    readNewFile.seekg(0, ios::end);

    length = readNewFile.tellg();

    ch = new char[length]; //is this how buffer is created?if no, please correct it. 

    readNewFile.seekg(0, ios::beg);

    while (readNewFile) {
        if (readNewFile.tellg() == pos)
            readNewFile.ignore(sizeof(Admin));
        readNewFile.read((ch), sizeof(Admin)); //is this how contents are read into buffer from file stream;

        if (readNewFile.eof())
            readNewFile.close();
    }

    ofstream outFile("Stock.dat", ios::trunc | ios::app);

    outFile.write(ch, sizeof(Admin)); //I am doubtful in this part also

}

OriginalL'auteur Udit | 2013-03-23