Как изменить символы в файле через putback? C++
Написал код, который читает файл посимвольно и необходимые символы меняет на нужные:
// m_stream - это std::fstream
void changeSymbolsTo(char from, char to) {
char c;
while (m_stream.get(c)) {
if (c == from) {
m_stream.putback(to);
}
}
m_stream.flush();
}
В итоге открываю файл, а он не изменился. Сел в отладчик, дебаггер показывает, что все работает нормально. Символы определяются, putback их пихает обратно в поток и следующим символом становится тот, что пихнули в putback. То есть поток модифицируется так, как надо, но изменения на файл не применяются. Почему в данном случае не работает flush()? Ведь именно эта функция должна слить все изменения в файл?