que tal, yo hice un metodo hace tiempoque segun yo hace lo que quieres:
solo incluye las librerias
iostream y string
Código:
void CConverter::FileReader(string &texto)
{
// constructor de la clase para lectura de archivos
// que le pasamos el nombre del cual queremos leer.
ifstream fp("datos.txt");
// si no pudo leerla, que mande un mensaje
// y se termine el programa
if(!fp)
{
cout << "no se pudo abrir el archivo\n";
return;
}
// declaramos 2 strings auxiliares para leer el contenido del archivo
string aux;
string aux2[100];
// contara los espacios en blanco que hay en total de todo el enunciado
int contEspacios = 0;
// mientras nuestro archivo no llegue al End Of File
while(!fp.eof())
{
// leemos en un string lo que contiene
// y va a ser separado por espacios en blanco
fp >> aux;
// asignamos a la primera posicion del arreglo auxiliar
// el primer string
aux2[contEspacios] = aux;
// le decimoes que avance una posicion
contEspacios++;
// y luego lo concatena con un espacio en blanco
aux2[contEspacios] = " ";
// vuelve incrementar el contador para que se pase a la siguiente posicion
contEspacios++;
}
// decrementa el contador de espacios para que no este fuera de rango
contEspacios--;
// cerramos el archivo
fp.close();
// copiamos lo que dice el enunciado con todo y espacios en blanco
// a un string que no sea un arreglo de strings, mediante la concatenacion
for(int i = 0; i<contEspacios; i++)
{
//cout<<aux2[i];
texto = texto + aux2[i];
}
espero te sirva.