Мне нужно прочитать файл .txt, найти строку для его изменения и затем снова сохранить файл .txt. Я хочу, чтобы это изменение было постоянным, то есть, если мне, например, нужно изменить две разные вещи, первое изменение должно остаться таким. По какой-то причине, когда я запускаю код для внесения нового изменения, предыдущий отменяется, даже если файл .txt действительно изменился, например, если у меня есть это в .txt
Данные A = 2;
Данные B = 0;
и запустите код, чтобы изменить «Данные A» на 5, если я снова открою .txt, он будет выглядеть так:
Данные А = 5;
Данные B = 0;
Если я запускаю его снова, чтобы изменить «Данные B» на 3, если я снова открою .txt, он будет читать:
Данные A = 2;
Данные B = 3;
что я не могу понять, если файл сохранен. Почему .txt сохраняется, а «старые значения» перезаписываются?
// Extract text from file
FileReader file("config.txt");
char* text = (char*)malloc(file.size() + 1);
file.read(text, file.size());
text[file.size()] = 0;
std::string str = text;
// Do some changes
std::string newstr = str;
newstr.replace(7,1,"5");
char *newText = new char[newstr.size() + 1];
newstr.copy(newText, newstr.size() + 1);
newText[newstr.size()] = '\0';
// Write to file again
file.close();
FILE* configFile;
configFile = fopen("config.txt", "w");
fputs(newText, configFile);
fclose(configFile);