Esta não é a resposta desejada, mas dependendo de quão bom você é com expressões regulares, você não deve negligenciar a leitura de todo o arquivo, e fazer um padrão encontrar e substituir. Presumo que o C ++ forneça uma biblioteca de regex adequada.
Uma vantagem é que você pode desenvolver e testar o regex fora de seu aplicativo, por exemplo, neste site de teste de regex Eu coloquei um arquivo simples, padrão e substituição que você pode jogar.
Naturalmente, um regex pode ser mais difícil de ler do que o código C ++ que você já possui, mas é uma linguagem muito poderosa e pode ser mais legível usando uma versão que permita comentários embutidos ou construindo-o de várias partes de cordas.