06.05.2013 Views

CONTENIDO DE LA LECCIÓN 8

CONTENIDO DE LA LECCIÓN 8

CONTENIDO DE LA LECCIÓN 8

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MIGUEL Á. TOLEDO MARTÍNEZ<br />

En este caso, el usuario ha escrito, en una sola línea, tres calificaciones de examen con números y<br />

no con letra. Sin embargo, dado que las variables están definidas como objeto carácter, el sistema<br />

trata los dígitos como caracteres durante la operación de lectura; ve a cada dígito de un número<br />

como un carácter por separado. De esta manera, asigna el carácter ‘7’ a calificacion1, el carácter<br />

‘5’ a calificacion2 y el carácter ‘9’ a calificacion3. Los datos restantes (2 88) no son extraídos del<br />

flujo por los tres enunciados cin, sino que permanecen en la memoria temporal de flujo. Por<br />

supuesto cualquier enunciado cin posterior extraerá todos o parte de los datos restantes. Lo que es<br />

importante recordar es utilizar siempre variables numéricas (entero o punto flotante) para leer<br />

datos numéricos. Como se ha visto, los datos pueden corromperse con facilidad cuando se usan<br />

variables de carácter para leer datos numéricos.<br />

Caso 5:<br />

El usuario escribe: 97.5 73 84¿<br />

El sistema muestra: 9<br />

7<br />

.<br />

Una vez más el usuario ha escrito tres calificaciones numéricas, las cuales son tratadas como<br />

datos de carácter por el programa. De esta manera, se asignan los primeros tres caracteres y la<br />

información restante se deja en la memoria temporal de flujo de entrada. Como puede ver en la<br />

repetición, el carácter ‘9’ se asigna a calificacion1, el carácter ‘7’ a calificacion2 y el punto<br />

decimal se asigna a calificacion3.<br />

USO <strong>DE</strong> <strong>LA</strong> FUNCIÓN MIEMBRO get() PARA LEER DATOS <strong>DE</strong> UN SOLO Carácter<br />

La función miembro get(), sin argumento introduce un carácter desde el flujo designado<br />

(aunque sea espacio en blanco) y devuelve dicho carácter como valor de la llamada de la<br />

función. Esta versión de get devuelve EOF cuando se llega al final del archivo de flujo.<br />

Habrá ocasiones en que quiera congelar la pantalla para que el usuario tome alguna<br />

acción, como presionar la tecla ENTER (¿) Se puede lograr insertando una llamada a la función<br />

get() dentro de su programa junto con una instrucción adecuada, en el punto donde quiera<br />

congelar la salida. El código C++ que se necesita para realizar esta tarea es el siguiente:<br />

cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!