//***********************************************
// 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”
Publicar un comentario