SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: bob esponja en Sábado 12 de Marzo de 2005, 07:52

Título: String Y Fstream
Publicado por: bob esponja en Sábado 12 de Marzo de 2005, 07:52
mi tema es este, siempre programae en c++ usando char * para las cadenas
y stdio.h para los archivos, los otros dias me decidi a empezar a usar
string y fstream y apenas empece me surgio el siguiente problema

lo que quiero hacer es crear un string que contenga el texto de un archivo.
entonces abro el archivo con un fstream o istream da igual, creo el string para
contenerlo e inento hacer lo sig:

CadenaDeCodigo << ManejadorDeArchivo;

y falla, se que probablemente eso es un error horroroso pero quiero hacerlo
adecuadamente al estilo c++ y no se cual es ese,
Título: Re: String Y Fstream
Publicado por: Ruben3d en Sábado 12 de Marzo de 2005, 12:53
Puedes hacer ésto:
Código: Text
  1. //
  2. // main.cpp
  3. //
  4.  
  5. #include &#60;iostream&#62;
  6. #include &#60;fstream&#62;
  7. #include &#60;string&#62;
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13.   ifstream in(&#34;main.cpp&#34;);
  14.   string linea, resultado;
  15.  
  16.   while (getline(in,linea))
  17.     resultado += linea + &#34;&#092;n&#34;;
  18.  
  19.   cout &#60;&#60; resultado;
  20.  
  21.   getchar();
  22.  
  23.   return 0;
  24. }
  25.  
En resultado queda almacenado el contenido del archivo.

Un saludo.

Ruben3d
Título: Re: String Y Fstream
Publicado por: carlos20 en Lunes 14 de Marzo de 2005, 01:50
Citar
lo que quiero hacer es crear un string que contenga el texto de un archivo.
entonces abro el archivo con un fstream o istream da igual, creo el string para
contenerlo e inento hacer lo sig:

CadenaDeCodigo << ManejadorDeArchivo;

y falla, se que probablemente eso es un error horroroso pero quiero hacerlo
adecuadamente al estilo c++ y no se cual es ese,

claro falla porque el operador "<<" no existe en ifstream , en ifstream el operador
es ">>" :

ManejadorDeArchivo >> CadenaDeCodigo;

del archivo a la cadena .

en ofstream el operador es "<<" :

ManejadorDeArchivo << CadenaDeCodigo;

de la cadena al archivo .

y en los dos casos el manejador del archivo se coloca del lado izquierdo del operador .

Código: Text
  1.  
  2. #include&#60;iostream&#62;
  3. #include&#60;fstream&#62;
  4. #include&#60;string&#62;
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.     ifstream entrada(&#34;archivo1.txt&#34;);
  10.     
  11.     string cad1;
  12.     string cad2;
  13.       
  14.     while(entrada&#62;&#62;cad1)
  15.           cad2+=cad1;        
  16.           
  17.     cout&#60;&#60;cad2;
  18.     
  19.     entrada.close();
  20.     return 0;
  21. }
  22.  
  23.