Leer elemento a elemento de un fichero

Iniciado por eleon, 29 Enero 2012, 23:36 PM

0 Miembros y 1 Visitante están viendo este tema.

eleon

Buenas:

Me gustaría saber cómo leer de caracter en caracter un documento, por ejemplo:

Código (c++) [Seleccionar]
#include <iostream>
#include <fstream>
using namespace std;

int main ()
{
   ifstream ifs ("entrada.txt");

   cout << ifs[5]; /*Esto está mal pero viene a sugerir lo que busco
                   Quiero imprimir el elemento número 5 del fichero*/

   return 0;
}


Está la posibilidad de guardar el contenido del fichero en una tabla con "ifs.getline (tabla, 256)", el caso es que ni sé el tamaño del texto ni me interesa guardarlo todo en una tabla cuyos elementos son del mismo tipo sino en varias tablas para separar los caracteres de los operandos numéricos. Por tanto debo recorrer el fichero elemento a elemento para comprobar su tipo.

Gracias y saludos.

Valkyr

Cuando yo tenía que leer información de un fichero usaba la redirección de la consola y en el programa únicamente leía de la entrada estándar. Es decir, en mi programa haría lo siguiente:

Código (cpp) [Seleccionar]

int main(void){
    int a;
    do{
        a = cin.get();
        //Hacer lo que quieras
    }while(!cin.eof());

}


De esta forma vas leyendo byte a byte el fichero. Para ejecutarlo simplemente desde una consola (bash en ubuntu, cmd en windows) haces: ./miprograma < entrada y ya con eso lo tienes resuelto.

Otra alternativa es usar ifstream o similares.

Un saludo.

naderST

Código (cpp) [Seleccionar]

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

ifstream datos;

int main()
{
    datos.open("c:/log.txt");
    while(!datos.eof())
        cout << (char)datos.get() << endl;
    datos.close();
    return 0;
}


eleon