[C con Clase] Modificar variable para guardar

Davidson, Steven srd4121 en njit.edu
Vie Feb 5 19:32:34 CET 2016


Hola Joaquín,

Como parece que quieres guardar todo el contenido del fichero, entonces
creo que la forma más fácil es hacer eso mismo.

Puedes usar un canal de caracteres, 'stringstream', para copiar datos de un
canal a otro; por ejemplo,

ostringstream oss;

file.get( *oss.rdbuf() );  // Lee y copia todos los caracteres del fichero
al canal de caracteres

linea = oss.str();  // Copiamos la cadena interna del canal a nuestra
cadena, 'linea'

Aquí, los caracteres de fin-de-línea se guardarán en la cadena.


Otra solución se basa en agregar cadenas para ir acumulando. Usa dos
cadenas: una temporal para leer cada línea y otra que acumula; por ejemplo,

string strTotal( "" );

while( getline(file, linea) )
  strTotal += linea;  // Agregamos el contenido de 'linea' al final de
'strTotal'

También puedes optar por invocar 'append()' en lugar de usar el operador
sobrecargado de +=.


Espero que esto te ayude.

Steven


2016-02-05 12:43 GMT-05:00 Joaquin Copello <joaquin.lpda20 en hotmail.com>:

> Buenas gente lo hago simple y rapido para ver si me pueden ayudar. Tengo
> este codigo:
>
>
>    1. #include <fstream>
>    2. #include <string>
>    3.
>    4. int main()
>    5. {
>    6.     std::ifstream file("NomFichero.txt");
>    7.     std::string linea;
>    8.     while (std::getline(file, linea))
>    9. }
>
> Como puedo hacer para que linea no guarde solo lo ultimo que lee si no que
>
> lea una linea y guarde lea otra y guarde y asi sucesivamente. Gracias
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20160205/8e912ddc/attachment.html>


Más información sobre la lista de distribución Cconclase