Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: eleon en 29 Enero 2012, 23:36 pm



Título: Leer elemento a elemento de un fichero
Publicado por: eleon en 29 Enero 2012, 23:36 pm
Buenas:

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

Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int main ()
  6. {
  7.    ifstream ifs ("entrada.txt");
  8.  
  9.    cout << ifs[5]; /*Esto está mal pero viene a sugerir lo que busco
  10.                     Quiero imprimir el elemento número 5 del fichero*/
  11.  
  12.    return 0;
  13. }
  14.  

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.


Título: Re: Leer elemento a elemento de un fichero
Publicado por: Valkyr en 30 Enero 2012, 01:50 am
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
  1. int main(void){
  2.    int a;
  3.    do{
  4.        a = cin.get();
  5.        //Hacer lo que quieras
  6.    }while(!cin.eof());
  7.  
  8. }

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

Otra alternativa es usar ifstream o similares.

Un saludo.


Título: Re: Leer elemento a elemento de un fichero
Publicado por: naderST en 30 Enero 2012, 03:11 am
Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. ifstream datos;
  6.  
  7. int main()
  8. {
  9.    datos.open("c:/log.txt");
  10.    while(!datos.eof())
  11.        cout << (char)datos.get() << endl;
  12.    datos.close();
  13.    return 0;
  14. }
  15.  
  16.  


Título: Re: Leer elemento a elemento de un fichero
Publicado por: eleon en 1 Febrero 2012, 14:06 pm
Muchas gracias, lo probaré y comento.