Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/07/2006, 19:41
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
yo prefiero verlo desde el punto de vista procedural o de objeto (Que por dentro es lo mismo).
todo lo demas es transparente al programador a menos que alguna aplicacion requiera de aspectos mas especializados de estos streams.

en C++.

cout y cin son objetos que se encargan de manipular estos canales.
estos objetos son una especializacion de istream y ostream

clases que tienen funciones miembros encargadas de escribir o sacar informacion y leer o capturar informacion.

de cou las funciones que mas se usan son get() y getline(), y los operadores sobrecargados <<.

un operador sobrecargado es en realidad una funcion que por nombre usa a un operador, por ejemplo

ostream& operator << (ostream& os, int value);
es una funcion operator sobrecargado, pero bien podriamos llamarla

ostream& write(ostream& os, int value);

pero claro para mayor comodidad se usan estos operadores.


cout usa << y cin usa >>
es como si fuesen unas flechas que indican la direccion en que fluye el stream.

ostream << value; // value fluye a ostrea, cout <- value;

cin >> value; // istream fluye a value, o value capruta de istream cin -> calue;

los operadores estan sobrecargados para todos los tipos que maneja C++ ademas de la clase string. por tanto no tienen que indicar el tipo a leer o escribir como se hace en C con stdlib.

los parametros para cin se pasan por referencia para poder guardar el valor leido en la variable.



un pequeño ejemplo con cadenas:

#include <iostream>
using namespace std;

int main()
{
char nombre[40];

cout << "Escribe tu nombre: ";
cin >> nombre;
cout << endl;
cout << "Hola " << nombre << "que tal los streams?" << endl;

return 0;
}