Witam mam problem tego typu, że próbuje napisać program do zamiany znaków xx w tekście na liczbę 01 i o przy każdej kolejnej zamianie liczba ta zwiększa się o jeden. To jest źle działający kod

Kod:
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
    ostringstream s; 
    int liczba=01;
    string txt;
    fstream plik;
    plik.open("dane.txt",fstream::in);
    while(!plik.eof()){    
    getline(plik, txt);
    s << liczba++;
    string cmd = s.str();
    int i = txt.find("xx");
    if (i != string::npos) txt.replace(txt.begin(), txt.end(), cmd);
    cout<<txt<<'\n';
    }
    plik.close();
    getchar();
    return 0;
}
Proszę o pomoc, z góry dzięki