Buscar y reemplazar cadena en el archivo txt en c ++

Quiero encontrar una cadena en un archivo y reemplazarla con la entrada del usuario.
Aquí está mi código en bruto.

#include <iostream>
#include <fstream.h>
#include <string.h>

int main(){
    istream readFile("test.txt");

    string readout,
         search,
         replace;

    while(getline(readFile,readout)){
        if(readout == search){
            // How do I replace `readout` with `replace`?
        }
    }
}

ACTUALIZAR
Aquí está el código que solucionó mi problema.

test.txt:

id_1
arfan
haider

id_2
saleem
haider

id_3
someone
otherone

Código C ++:

#include <iostream>
#include <fstream>
#include <string>

using namesapce std;

int main(){
    istream readFile("test.txt");
    string readout,
           search,
           firstname,
           lastname;

    cout << "Enter the id which you want to modify";
    cin >> search;

    while(getline(readFile,readout)){
        if(readout == search){
            /*
                id remains the same
                But the First name and Last name are replaced with
                the user `firstname` and `lastname` input
            */
            cout << "Enter new First name";
            cin >> firstname;

            cout << "Enter Last name";
            cin >> lastname;  
        }
    }
}  

Suponer:
Un usuario busca idid_2. Después de que el usuario ingrese Nombre y ApellidoShafiq yAhmed. Después de ejecutar este código eltest.txt El archivo debe modificar el registro de esa manera:

…

id_2
Shafiq
Ahmad

…

Solo elid_2 cambios de registro, el archivo restante se mantendrá igual.

Respuestas a la pregunta(2)

Su respuesta a la pregunta