C++: La librería iostream.h

Aunque sabemos que un programa escrito en C es muy bueno, nosotros estamos interesados en aprender los aspectos nuevos introducidos en C++, pues bien, un cambio muy importante es en la manera en que se maneja la entrada y salida de datos en el programa. Al igual que en C, C++ no incluye operaciones de entrada y salida como parte del lenguaje en sí, en cambio define la librería iostream que agrega funciones de entrada y salida muy elegantes. Al programar en C nos familiarizamos con el archivo stdio.h en donde está definida entre otras, la función printf() que como sabemos sirve para escribir datos en el dispositivo estándar de salida, que en la gran mayoría de los casos es el monitor de la computadora. Como la función printf() se desarrolló casi desde los origenes de C, la función ha sufrido una serie de transformaciones que la ha hecho crecer en tamaño, como resultado de esto, cuando incluimos la función printf() en nuestro programa C tambien incluimos todas las opciones agregadas con el tiempo aunque no las utilicemos. Un caso similar sucede con la función scanf().


     C++ propone una solución muy interesante al tratar las operaciones de entrada-salida (E/S) no como una función, sino como una clase que implementa una gran capacidad de formatos para entrada y salida de datos, de ésta manera el programador C++ toma sólo las carácterísticas que el trabajo requiere. Aunque no hemos definido qué es una clase, tenga en cuenta que en C++ las operaciones de E/S están definidas en una clase, éste es un punto importante. Existen cuatro flujos de E/S (iostreams) predefinidos:
  • cin, asociado al dispositivo de entrada estándar.
  • cout, asociado al dispositivo de salida estándar.
  • cerr, asociado al dispositivo de error estándar.
  • clog, salida almacenada temporalmente para el dispositivo de error estándar.
     Tomando en cuenta lo dicho estamos en condición de modificar el programa anterior para utilizar los flujos de E/S, de ésta manera ya no necesitamos el archivo de cabecera stdio.h el cual lo hemos sustituido por el archivo iostream.h que nos permite utilizar los flujos de E/S
//******************************************
// entsal.cpp
//******************************************

#include <iostream.h>
int main()
{
    float corriente, voltaje, resistencia; // tres variables
    cout << "Este programa calcula volaje de acuerdo a la ley de Ohm\n";
    cout << "Valor de la corriente, en amperes?\n";
    cin >> corriente;
    cout << "Valor de la resistencia, en ohms?\n";
    cin >> resistencia;
    voltaje=corriente*resistencia; // calculo de voltaje
    cout << "El valor del voltaje es de " << voltaje << " voltios\n";
    return 0;
}
     El programa entsal.cpp es idéntico al 2 programa de la entrada anterios, sin embargo es importante hacer notar lo siguiente, no se recomienda mezclar la función printf() con el flujo de salida cout en el mismo programa ya que se generarían dos flujos independientes hacia el mismo dispositivo de salida con resultados impredecibles. Comparando los dos últimos programas es fácil asimilar el uso de cin y cout. Utilizamos el flujo de salida cout en conjunción con el operador de inserción, << para mostrar un mensaje en la pantalla del monitor. De manera similar, utilizamos el flujo de entrada cin en conjunción con el operador de extracción, >> para asignar un valor a las variables llamadas corriente y resistencia. Observe que no es necesario utilizar el operador de dirección & con las variables de entrada. La línea 19 demuestra el uso de varios operadores de inserción en una sola línea de código, observe que las cadenas y los datos se despliegan en el orden en que se escriben en la línea de código, tambien observe el espacio en blanco al final de la primera cadena y al principio de la segunda cadena de ésta línea de código.
     En términos generales declaramos el archivo de cabecera iostream.h para operaciones de flujos de E/S, éste suele incluir otros archivos de cabecera adicionales que declaran funciones, macros, clases y valores necesarios en las operaciones con flujos de entrada (istream.h), flujos de salida (ostream.h), buffers de flujos (streamb.h) y manipuladores de flujo (imanip.h) principalmente. Analizaremos éstas tres partes por separado.

No response to “C++: La librería iostream.h”