У меня есть файл, над которым мне требуется несколько операций. Иногда я просто хочу добавить данные в конец файла, иногда я просто хочу прочитать из файла, а иногда я хочу стереть все данные и записать из начала файла. И затем мне снова нужно добавить данные в конец файла.
Я использую следующий код:
ofstream writeToTempFile;
ifstream readFromTempFile;
writeToTempFile.open("tempFile.txt", ios::app | ios::out);
readFromTempFile.open("tempFile.txt", ios::in);
// Reading and Appending data to the file
// Now it is time to erase all the previous data and start writing from the beginning
writeToTempFile.open("tempFile.txt", std::ofstream::trunc); // Here I'm removing the contents.
// Write some data to the file
writeToTempFile.open("tempFile.txt", std::ofstream::app); // Using this, I'm again having my file in append mode
Но то, что я сделал, работает неправильно. Пожалуйста, предложите мне какое-нибудь решение на C++. (Нет в С)
writeToTempFile
перед повторным вызовом open? Вам нужно будет сделать это, иначе open не сработает. cplusplus.com/reference/fstream/fstream/open Если поток уже связан с файлом (т. е. он уже открыт), вызов этой функции завершается ошибкой. - person csteifel   schedule 12.01.2014