Introducción a Patrones de Diseño en C++ con Qt4/1.6 Entrada y Salida

Versión para imprimir esta pagina

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:

  1. cin, entrada estándar, el teclado por defecto.
  2. cout, salida estándar, la pantalla de consola por defecto.
  3. 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 de :");

Invocamos a la misma función utilizando la sintaxis infix más elegante y legible:

cout << "Factorial de:  " ;

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 << "El costo es de $" << 23.45 << " por " << 6 << " artículos." << '\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
Ejemplo: Ejemplo 1.4 src/iostream/io.cpp
Los símbolos flush y endl son manipuladores[2], del namespace std.
#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;
}


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.


Versión para imprimir esta pagina

  1. Cubrimos las funciones de recarga y operadores más a fondo en la Sección 5.2.
  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.