![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
11/07/2006, 19:41
|
| | Fecha de Ingreso: abril-2006 Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 9 meses 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;
} |