Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Duda con flujos de salida

Estas en el tema de Duda con flujos de salida en el foro de C/C++ en Foros del Web. Buenas, he implementado la siguiente función para un objeto de tipo usuario. Es una función externa que devuelve un flujo de salida mostrando el carrito ...
  #1 (permalink)  
Antiguo 01/04/2014, 16:17
 
Fecha de Ingreso: octubre-2012
Mensajes: 37
Antigüedad: 11 años, 7 meses
Puntos: 0
Duda con flujos de salida

Buenas, he implementado la siguiente función para un objeto de tipo usuario. Es una función externa que devuelve un flujo de salida mostrando el carrito de la compra de un determinado usuario.

No tengo muy claro si un flujo de salida es un ofstream, puesto que todo lo que he visto por internet utiliza ofstream en modo de ficheros y no sé si realmente es ese el significado de flujo de salida.

La función la he declarado momentáneamente como void aunque se que esto no es correcto. Sin mas aquí pongo el código:

Código C++:
Ver original
  1. void mostrar_carro(const Usuario& user) {
  2.  
  3.   cout << "Carrito de la compra de " << user.nombre() << " [Articulos: "
  4.        << user.n_articulos() << "]\n Cant. Articulo\n================="
  5.        << "=========================================\n";
  6.   for (Usuario::Articulos::const_iterator  p = user.compra().begin(); p != user.compra().end(); p++)
  7.     cout << setfill(' ') << setw(4) <<  p->second << setw(4) << *p->first << "\n";
  8. }

Esta función, tiene como salida el siguiente formato:

Carrito de la compra de Jose Ramon [Articulos: 2]
Cant. Articulo
================================================== ========
21 [110] "Fundamentos de C++", 1998. 29.95€
3 [111] "Fundamentos BD", 2002. 25.00€
  #2 (permalink)  
Antiguo 02/04/2014, 04:18
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Duda con flujos de salida

ofstream es para gradar una entrada a un archivo por ejemplo.
aqui un ejemplo de ofstream y ifstream
Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. void guardar (string, int );
  5. void imprimir ();
  6.  
  7. int main () {
  8.     guardar( "Bartolo", 32 );
  9.     imprimir();
  10.    
  11.    return 0;
  12. }
  13.  
  14. void guardar (string str, int num ) {
  15.     ofstream fout("archivo.txt");
  16.     fout << str << " " << num;
  17.  
  18. }
  19.  
  20. void imprimir (){
  21.     ifstream fin("archivo.txt");
  22.     string nombre;
  23.     int edad;
  24.     fin >> nombre >> edad ;
  25.     cout << nombre << " " <<  edad << endl;
  26. }
hay 2 funciones...una guarda(ofstream) y la otra lee el archivo(ifstream);

Lo único que veo que haces es imprimir en pantalla.
Solo veo cout. cout pertenece a la biblioteca iostream, otra forma de usarlo es en ves de usar iostream es poner solo su parte dedicada a salida ostream.

Tienes 2 flujos, el de entrada y el de salida.
Aquí mas o menos como funcionan...
ofstream como dice of es de salida, salida hacia el archivo de texto.
of de ofstream y out de cout los 2 son salida, pero uno es hacia la pantalla y otro hacia el fichero.
Al igual que iostream que sirve tanto para salida como para entrada pero a la pantalla. fstream sirve para ambos ... salida y entrada pero a fichero.

No se si es eso lo que quieres saber...Bueno sino sigue preguntando

iostream = input output stream = entrada y salida a pantalla
istream = input stream = entrada a pantalla
ostream = output stream = salida a pantalla

fstream = file stream = entrada y salida a ficheros
ifstream = input file stream = entrada a ficheros
ofstream = output file estream = salida a fichero

cin y ifstream son para entrada, pero cin lee del teclado y ifstream le del fichero.
cout y ofstream son para salida, cout envia los datos hacia pantalla y ofstream hacia el fichero.

Última edición por vangodp; 02/04/2014 a las 04:30
  #3 (permalink)  
Antiguo 02/04/2014, 05:18
 
Fecha de Ingreso: octubre-2012
Mensajes: 37
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Duda con flujos de salida

Si vale eso de los flujos lo entiendo, pero no se en este caso que flujo de salida usar.

En este caso, el código que usa esta función es:

Código C++:
Ver original
  1. const Usuario& rU = *pU;
  2. ostringstream os;
  3. mostrar_carro(os, *pU);
  4. string sCarro = os.str();
  #4 (permalink)  
Antiguo 02/04/2014, 06:19
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Duda con flujos de salida

Orvida lo dicho XDD

Un ejemplo de ostringstream:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <sstream>
  3. using namespace std;
  4.  
  5. int main (){
  6.     ostringstream os("Resultado ", ios::out|ios::app);
  7.     os << 5;
  8.     cout << os.str();
  9.    
  10.     cin.ignore();
  11.     return 0;
  12. }
Eso imprime: Resultado: 5

la cosa seria ver que es lo que hace esa funcion: mostrar_carro(os, *pU);

Última edición por vangodp; 02/04/2014 a las 06:50

Etiquetas: int, salida
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.