/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Problema para leer fichero en c++

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
ZedGe



Registrado: 03 May 2011
Mensajes: 14

MensajePublicado: 23/12/2011 9:55 am
Título: Problema para leer fichero en c++

Tengo que leer un archivo y guardar lo que lee en un array, el problema? Primero mi codigo no guarda nada solo imprime (esto es por mientras si se hacerlo). El verdadero problema es que necesito que leea char a char y no la linea entera como lo tengo yo

Otra cosa para que es input??

Código:

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

int main()
{
char linea[128];
int comas;

   ifstream entrada("texto.txt");
   ifstream input;
   char c;
   input.open("texto.txt");

   if (entrada.good())
      cout << "El archivo texto.txt fue abierto correctamente \n";

   else
      cout << "El archivo texto.txt no pudo ser abierto correctamente \n";

   while(!entrada.eof()){
      entrada.getline(linea, sizeof(linea));
           cout << linea << endl;
   }
   entrada.close();
   input.close();
   return 0;
}

Volver arriba
cheroky



Registrado: 22 Sep 2005
Mensajes: 2479
Ubicación: Valladolid (España)

MensajePublicado: 23/12/2011 6:58 pm
Título:

Hola.

ZedGe escribió:
Otra cosa para que es input??

Si es tu código la pregunta debería ser: ¿Por que he puesto aquí esto?.

Mi respuesta es que no hace absolutamente nada.

Otras deficiencias son: utilizar el miembro eof junto con getline, si el segundo falla activando el bit failbit, el bucle se hace infinito. Otra es cerrar siempre el fichero aunque este no se haya abierto por alguna causa.

Para almacenar caracteres en un array desde fichero, a grandes rasgos sería así:

Código:
#include <iostream>
using std::cout;

#include <fstream>
using std::ifstream;

const size_t MAX = 200;

int main()
{
   char str[MAX] = {0};
   size_t i;
   
   ifstream file("texto.txt");   

   if (file.is_open())
   {
        cout << "El archivo texto.txt fue abierto correctamente\n";
 
        for(i = 0; i < MAX - 1 && file.good(); i++)
            str[i] = file.get();
   }
   else
   {
        cout << "El archivo texto.txt no pudo ser abierto correctamente\n";
        return -1; 
   }     
   
   cout << str;
   
   file.close();
   
   return 0;



·?0ƒ·
_________________
La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí.
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com