Para empezar el fragmento que pones es C. No tienes porque convertirlo antes de enviarlo al archivo ya que puedes hacerlo directamente con:
/* ... */
Para leerlo solo tienes que utilizar fscanf.
string itoa(int n){
string rtn;
for(rtn="";n>0;rtn.insert(rtn.begin(),n%10+'0'),n/=10);
return rtn;
}
Un problema aqui es que devolveria una cadena vacia (no es necesaria la asignacion inicial ya que todo objeto de la clase string inicia asi) si el numero pasado fuera el cero.
Otra opcion es:
string itoa(int n)
{
string s;
char digit[] = "0123456789";
do {
s = digit[n % 10] + s;
}while ((n /= 10) > 0);
return s;
}
Otra forma es utilizando clase stringstream:
string itoa(int n)
{
stringstream ss;
string s;
ss << n;
ss >> s;
return s;
}
Un saludo