Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problea.Lectura de un txt. Captura de una string

Estas en el tema de Problea.Lectura de un txt. Captura de una string en el foro de C/C++ en Foros del Web. Buenas Gente!! toy aprendiendo C++ y todo me ha ido perfecto hasta que me tube que meter con las strings! jaja . Bueno mi problema ...
  #1 (permalink)  
Antiguo 10/06/2008, 09:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 42
Antigüedad: 16 años, 2 meses
Puntos: 0
Problea.Lectura de un txt. Captura de una string

Buenas Gente!! toy aprendiendo C++ y todo me ha ido perfecto hasta que me tube que meter con las strings! jaja .

Bueno mi problema es. Estoy abriendo un archivo de texto que tiene los siguientes datos:


-2.256151111
-2.501821515
...
problema es el siguiente. No logro guardar la cadena "-2.256151111" o cualquier otra.

Lo que necesito hacer es leer estas cadenas, transformarlas a double y guardarlas en un array.

Para transformar la cadena a double usaria la funcion strtod ();

Pero mi problema es que no puedo almacenar la string!!! Supongamos que tmp es de tipo string. Mi pregunta es ... Como guardo la cadena que leo, linea por linea??

n = 0;
while (!archivo.eof())
{
tmp = archivo.get();
x[n].re = strtod (tmp);
x[n].im = 0;
cout << x[n].re << endl;
cout << x[n].im << endl;
n++;
}

Alguien me puede dar una idea de como hacerlo? . Se que el get solo trae un solo caracter.... Pero no se que funcion usar!! creo que ese es mi problema...
  #2 (permalink)  
Antiguo 10/06/2008, 10:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 42
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problea.Lectura de un txt. Captura de una string

Solucionado!!
Lo que hice:

#1: char tmp [100];

#2:

while (!archivo.eof())
{
archivo.getline (tmp,100);
x[n].re = atof (tmp);
x[n].im = 0;
n++;
}

Y solucionado!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:31.