Page 1 of 1

Pregunta de C++

PostPosted: Sun May 01, 2011 7:28 pm
by erkosone
Tengo este codigo que crea un file y después lo lee para cargar dos datos a dos variables..
Para que en la primera asignación de lectura a "nombre" solo me coja el valor que he guardad como nombre, osea, "Luis", tengo que meter una chapuza como esta:
Code: Select all
f_out << " ";

Es para separar los dos datos entre si..
Eso está bien hecho así o se puede hacer mejor de otra manera sin hacer esta chapuza?
Code: Select all
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    // creo el file..
    string nombre = "Luis";
    int edad = 32;
 
    ofstream f_out("data.txt");  // declaro fs como archivo de salida..
 
    f_out << nombre;             // envio la variable nombre al file..
    f_out << " ";
    f_out << edad;               // envio la variable edad al file..
     
    f_out.close();               // cierro el archivo..
   
   
   
    // cargo variables desde el file..
    ifstream f_in("data.txt");
    f_in >> nombre >> edad;
    cout << "DATOS CARGADOS DEL ARCHIVO data.txt" << endl;
    cout << "-----------------------------------" << endl;
    cout << "NOMBRE: " << nombre << endl;
    cout << "EDAD:   " << edad << endl;
   
    f_in.close();
    system("pause");
    return 0;
}



Re: Pregunta de C++

PostPosted: Sun May 01, 2011 8:54 pm
by CicTec
Hola erkos,

El operador << y >> pueden ser concatenados en C++, asi el codigo:
Source Code (C++) [ Download ] [ Hide ]
  • f_out << nombre;             // envio la variable nombre al file..
  • f_out << " ";
  • f_out << edad;               // envio la variable edad al file..
  •  


Puede ponerse:
Source Code (C++) [ Download ] [ Hide ]
  • f_out << nombre << " " << edad;  // envio las variable nombre y edad al file..
  •  


Incluso puedes ponerlo en mas lineas:
Source Code (C++) [ Download ] [ Hide ]
  • f_out << nombre /* envio la variable nombre al file.. */
  •       << " "
  •       << edad;  /* envio las variable edad al file.. */
  •  

Re: Pregunta de C++

PostPosted: Sun May 01, 2011 10:42 pm
by erkosone
mmm.... ok, veo que así hago solo una llamada a la función en vez de 3.. vale gracias CicTec.

Supongo que enviar el " " es algo normal para separar los datos.

Re: Pregunta de C++

PostPosted: Sun May 01, 2011 10:51 pm
by CicTec
Si, es normal.