[C con Clase] (sin asunto)

Ferran Ferri ferranferri en gmail.com
Jue Oct 8 18:09:34 CEST 2009


Tienes otros metodos para ifstream como read, que te lee un bloque
entero de datos, readline, etc
La referencia esta aqui:
http://www.cplusplus.com/reference/iostream/ifstream/

Es mejor leer las especificaciones de C++ para encontrar todos sus
secretillos. Te pego un ejemplo:

================================================================================
// read file data using associated buffer's members
#include <iostream>
#include <fstream>
using namespace std;

int main () {
  filebuf *pbuf;
  ifstream filestr;
  long size;
  char * buffer;

  filestr.open ("test.txt");

  // get pointer to associated buffer object
  pbuf=filestr.rdbuf();

  // get file size using buffer's members
  size=pbuf->pubseekoff (0,ios::end,ios::in);
  pbuf->pubseekpos (0,ios::in);

  // allocate memory to contain file data
  buffer=new char[size];

  // get file data
  pbuf->sgetn (buffer,size);

  filestr.close();

  // write content to stdout
  cout.write (buffer,size); <-- En vez de ponerlo en la consola, aqui
ya lo podrias meter en un string.

  free(buffer);

  return 0;
}

============================================================================

Lo que no tengo muy claro es como te puede servir el string cuando vea
el primer caracter \0 de final de linea, puesto que creo que lo
interpreta como final de string, descartando el resto de la
informacion. Tambien puedes trabajar con el puntero y separarlo en
diferentes strings, aunque para eso usa directamente el readline, que
es mas comodo.
Ferran



2009/10/7  <inf200717 en ucf.edu.cu>:
> Como puedo leer de un fichero, todo en forma de texto y asignarle un String
> para desmeluzarlo despues con strtok, lo que me pasa es que cuando uso lo
> iftream me lo acepta todo como byte, se copia byte por byte y no la cadena
> completa.
>
>
> --
> Lester Arturo Oropesa Morales
> Informatica(2do)
> UCF Carlos Rafael Rodriguez
>
> ________________________________
>
> Participe en Universidad 2010,
> del 8 al 12 de febrero del 2010
> La Habana, Cuba
> http://www.universidad2010.cu
> http://www.universidad2010.com
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>




Más información sobre la lista de distribución Cconclase