• Jueves 14 de Noviembre de 2024, 04:37

Autor Tema:  String Y Fstream  (Leído 1651 veces)

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
String Y Fstream
« en: Sábado 12 de Marzo de 2005, 07:52 »
0
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,

Ruben3d

  • Miembro HIPER activo
  • ****
  • Mensajes: 710
  • Nacionalidad: es
    • Ver Perfil
    • Web personal
Re: String Y Fstream
« Respuesta #1 en: Sábado 12 de Marzo de 2005, 12:53 »
0
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

carlos20

  • Miembro activo
  • **
  • Mensajes: 34
    • Ver Perfil
Re: String Y Fstream
« Respuesta #2 en: Lunes 14 de Marzo de 2005, 01:50 »
0
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.