Introducción a Patrones de Diseño en C++ con Qt4:1.6
Entrada y Salida
[editar]En el ejemplo 1.3, la directiva
#include <iostream>
Nos permitió hacer uso de la entrada global predefinida y objetos de flujo de salida. Estos son:
- cin, entrada estándar, el teclado por defecto.
- cout, salida estándar, la pantalla de consola por defecto.
- cerr, error estándar, otro flujo de salida a la pantalla de consola con parpadeos más visibles, y normalmente es usado para mensajes de error.
En el ejemplo 1.3, hacemos uso del objeto de flujo global (de la clase ostream), llamado cout. Llamamos a una de sus funciones miembro, cuyo nombre es operator<<(). Esta función recarga el operador de inserción, <<, y lo define como la función global. [1] La sintaxis de esa sentencia de salida es también un tanto interesante. En lugar de usar la conocida y voluminosa notación de la función:
cout.operator<<("Factorial of :");
Invocamos a la misma función utilizando la sintaxis infix más elegante y legible:
cout << "Factorial of: " ;
Este operador puede ser encadenado (usado sobre valores múltiples), y está predefinido para usarse con muchos tipos integrados, como vemos en la siguiente sentencia de salida:
cout << "The cost is $" << 23.45 << " for " << 6 << " items." << '\n';
En el ejemplo 1.4, podemos ver operator>>() usado para ingresar con istream en un camino análogo a << para ostream.
Ejemplo 1.4
[editar]#include <string> #include <iostream> int main() { using namespace std; const int ESTEANYO = 2006; string TuNombre; int AnyoNacimiento; cout << " ¿Cuál es tu nombre? " << flush; cin >> TuNombre; cout << "¿En qué año naciste? " ; cin >> AnyoNacimiento; cout << "Tu nombre es " << TuNombre << " y tienes aproximadamente " << (ESTEANYO - AnyoNacimiento) << " años. " << endl; }
Los símbolos flush y endl son manipuladores[2], del namespace std.
En el Ejemplo 1.4, hacemos uso del tipo cadena, también desde la librería de C++ Standard Library. Discutiremos este tipo y demostraremos algo de sus funciones más adelante en la Sección 1.11.
- ↑ Cubrimos las funciones de recarga y operadores más a fondo en la Sección 5.2.
- ↑ Los manipuladores son referencias de función que pueden ser insertados dentro de un flujo de entrada ó salida para modificar su estado. Discutimos más a fondo esto en la Sección 1.12.