Programación General > C++ Builder

 Lectura De Archivo

(1/2) > >>

Goselito_0:
Hola, aqui estoy de nuevo, de duda en duda...

La duda es la siguiente:
Creo el archivo:          
fstream fichout(nom_arch.c_str(), ios::out);
(lo manipulo y lo cierro)    
fichout.close()

Al leerlo utilizo el bucle:
while (!fichout.eof())
()

Añado la libreria <fstream.h>
En la mamipulacion no esta el error puesto que he utilizado un bucle "for" para probarlo y funciona, el error creo que esta en que no encuentra el final del archivo correctamente y me da error de memoria, ¿estoy pasando algo por alto?

Gracias de nuevo.

sonGoku:
pon un poco más de código sobre como abres el fichero, y lees datos.

Saludos

Goselito_0:
Sigo sin encontrar el fallo    :(    Cuando me salta el error se abre "stdlib.h"

--- Código: Text ---  fstream fich(nomb_arch.c_str(), ios::in);   if (!fich.is_open())        ShowMessage(&#34;El fichero no existe o no pudo abrirse correctamente!!&#34;);  else        {        // LEEMOS UNA LINEA DEL FICHERO ABIERTO:         // Nos situamos en el comienzo del archivo        fich.seekg(0);         // Extraemos la primera linea, se leen los titulos de cabecera &#34;Id. Bloque&#34; &#34;Fila&#34; &#34;Columna&#34;...        fich.getline(salida,100);          for(i= 1; i&#60; 10; i++) //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!        //while(fich.eof()== false)                {                // Extraemos la segunda linea                fich.getline(salida,100);                 // Asignamos valores al &#34;elem&#34; y lo guardamos en la lista_arch                 // Leemos el id. bloque (tipo char)                p= strtok(salida, &#34;;&#34;);                elem.inform.Ident= p;                // Leemos la fila (int)                p= strtok(NULL, &#34;;&#34;);                d= atoi(p);                elem.inform.fila= d;                ...                 lista_arch.Insertar_pos(lista_arch.Longitud()+1, elem);                }        fich.close();        } 

Goselito_0:
¿Es posible que el fallo este en el uso de la funcion "atoi"?
Cuando me sale el error se abre la libreria stdlib.h y se marca la siguiente linea:


--- Código: Text ---   inline int _RTLENTRY atoi(const char *__s) { return (int)atol(__s); } 
¿Hay alguna otra forma de pasar de char a int?

Gracias de nuevo.

TRod:
Te recomiendo que agregues una excepción (try/catch) y verificar que datos esta leyendo.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa