C++: Funciones de entrada

Para Usted no debe ser ya cosa extraña que en C++ utilizamos el operador de extracción (>>) en conjunto con el flujo cin para realizar operaciones de entrada. El flujo de entrada cin tambien está definido como una clase y su declaración la encontramos en el archivo de cabecera iostream.h junto con sus respectivas funciones miembro, algunas de las cuales analizaremos en el siguiente programa, llamado entrada.cpp, sin duda alguna no tendrá problema en comprender lo expuesto en el siguiente código:

//***********************************************
// entrada.cpp
//***********************************************

#include <iostream.h>
#include <ctype.h>

int contador; // automáticamente inicializada en cero

int main()
{
 char texto[64], letra;

 cout << "Teclee una linea de texto y presione enter\n\n";
 cin.getline(texto, sizeof(texto));
 cout << "\n\nEl texto introducido es:\n\n" << texto
  << "\n" << "el cual contiene " << cin.gcount()-1
  << " carácteres" << endl;
 cout << "\n\nTeclee otra linea de texto que incluya una x\n";

 do
 {
  letra=cin.get();
  cout << (char)toupper(letra);
  contador++;
 }
 while(letra!='x');
 cout << "\n\nUsted escribio " << contador-1 << " carácteres "
  "antes de la x" << endl;

 return 0;
}
     No está de más recordar que una variable de tipo global es automáticamente inicializada a cero. El programa entrada.cpp demuestra el uso de algunas funciones miembro de la clase istream, empezando por la función llamada getline() que lee una línea de texto hasta encontrar un carácter de retorno de carro ("\n"), similarmente se hace uso de la función miembro gcount() para determinar el número de carácteres leídos, ésta función incluye el carácter de retorno de carro, por lo tanto restamos uno al valor retornado por la función para que el resultado desplegado sea el correcto (línea 17). En la segunda parte del programa se utiliza la función miembro llamada get(), ésta lee un solo carácter borrándolo de la memoria de almacenamiento temporal, se convierte a mayúscula utilizando la función toupper() moldeando la salida de ésta a tipo char y se despliega el resultado en pantalla. Éste proceso se repite merced de un bucle do-while hasta encontrar un carácter 'x'. Compare el resultado obtenido de la cuenta efectuada en el bucle do-while por la variable llamada contador con el resultado obtenido al utilizar la función miembro gcount().
     Es importante experimentar con lo expuesto en éste capítulo, con frecuencia aprendemos detalles que por alguna causa nos pasan inadvertidos con la simple lectura del texto, además cada compilador tiene sus detalles particulares que conviene conocer para conseguir el máximo provecho del mismo.

No response to “C++: Funciones de entrada”