CONTENIDO DE LA LECCIÓN 8

CONTENIDO DE LA LECCIÓN 8 CONTENIDO DE LA LECCIÓN 8

azul2.bnct.ipn.mx
from azul2.bnct.ipn.mx More from this publisher
06.05.2013 Views

MIGUEL Á. TOLEDO MARTÍNEZ cin es un objeto de la clase istream, y se dice que está enlazado (o conectado) al dispositivo de entrada estándar que normalmente es el teclado. El operador de extracción de flujo, como se utiliza en la siguiente instrucción, causa que un valor para la variable entera calificación (suponiendo que calificación ha sido declarada como int) se reciba desde cin hacia la memoria: cin >> calificación; Observe que la operación de extracción de flujo es lo suficientemente inteligente para saber el tipo de datos que es. Suponiendo que calificación se haya declarado adecuadamente, no se necesita especificar información adicional para utilizarla con dicho operador (como es el caso, por coincidencia, en la E/S estilo C) Antes de que comprenda cómo trabaja este enunciado debe saber un poco más de cómo C++ ve una línea de datos. Suponga que escribe dos líneas de datos como sigue: 74 92 88¿ 23 45 16↵ Cuando escribe los datos anteriores desde el teclado, debe colocar cada número en forma consecutiva, separando los números con uno o más espacios. Conforme se ingresan los valores, éstos se almacenan en el flujo de memoria temporal (buffer) cin. Al final de la línea se deberá presionar ENTER (¿) ¿Cómo sabe el sistema que finaliza un elemento de datos y empieza otro? Correcto, el espacio en blanco (blancos) entre los elementos de datos separa un elemento de otro. Después, ¿Cómo reconoce el sistema el fin de la línea de datos? Correcto otra vez, al presionar la tecla ¿ que define el final de la línea e introduce un CRLF dentro de la memoria temporal de flujo. En la figura 7.1 se ilustra la memoria temporal de flujo y su contenido después de que esta operación ingresa los datos: 74 92 88 CRLF 23 45 16 CRLF Flujo de entrada cin Carácter en blanco 74 92 88¿ 23 45 16¿ Figura 7.1. Memoria temporal (buffer) de flujo de entrada después de escribir dos líneas de datos. El formato general para cin es el siguiente: cin >> variable; TECLADO Observe como después del objeto cin sigue un doble pico paréntesis a la derecha, el operador de extracción de flujo, >>, seguido por la variable a la que asignará los datos FUNDAMENTOS – LECCIÓN 7 7-4

MIGUEL Á. TOLEDO MARTÍNEZ introducidos. Decimos que el operador >> extrae los datos que se van a leer de los datos de entrada en la memoria temporal de flujo. Posteriormente, los datos de entrada se asignan a la variable escrita en el enunciado cin. Por supuesto, la variable deberá estar definida como un tipo de datos legal antes de utilizarla en el enunciado cin. Por ejemplo, suponga que se han definido tres variables de clase entero llamadas registro1, registro2 y registro3. Para introducir datos en las cada una de las variables, deberán insertarse tres enunciados cin dentro del programa, como los siguientes: cin >> registro1; cin >> registro2; cin >> registro3; Cuando C++ encuentre los enunciados anteriores en el programa, detendrá la ejecución hasta que el usuario escriba los datos solicitados. Ahora suponga que el usuario, desde el teclado, escribe lo siguiente; 74¿ 92¿ 88↵ ¿Qué supone que pasará? Correcto, otra vez, el valor 74 se extraerá del flujo cin y se asignará a registro1, se extraerá el valor 92 y se asignará a registro2 y se extraerá el valor 88 y se asignará a registro3. De esta manera, se puede pensar en la operación cin como una operación de asignación. Cuando se use el operador >>, un valor escrito desde el teclado será extraído del flujo de entrada y será asignado a la variable listada en el enunciado cin. En la figura 7.2 se muestra el contenido de la memoria temporal para estas entradas. 74 CRLF 92 CRLF 88 CRLF Flujo de entrada 74¿ 92¿ 88¿ Teclado Figura 7.2. Flujo de entrada de datos. El usuario también puede escribir estos mismos valores en una línea sencilla, como la siguiente: FUNDAMENTOS – LECCIÓN 7 7-5

MIGUEL Á. TOLEDO MARTÍNEZ<br />

introducidos. Decimos que el operador >> extrae los datos que se van a leer de los datos de<br />

entrada en la memoria temporal de flujo. Posteriormente, los datos de entrada se asignan a la<br />

variable escrita en el enunciado cin. Por supuesto, la variable deberá estar definida como un tipo<br />

de datos legal antes de utilizarla en el enunciado cin.<br />

Por ejemplo, suponga que se han definido tres variables de clase entero llamadas<br />

registro1, registro2 y registro3. Para introducir datos en las cada una de las variables, deberán<br />

insertarse tres enunciados cin dentro del programa, como los siguientes:<br />

cin >> registro1;<br />

cin >> registro2;<br />

cin >> registro3;<br />

Cuando C++ encuentre los enunciados anteriores en el programa, detendrá la ejecución<br />

hasta que el usuario escriba los datos solicitados. Ahora suponga que el usuario, desde el teclado,<br />

escribe lo siguiente;<br />

74¿<br />

92¿<br />

88↵<br />

¿Qué supone que pasará? Correcto, otra vez, el valor 74 se extraerá del flujo cin y se<br />

asignará a registro1, se extraerá el valor 92 y se asignará a registro2 y se extraerá el valor 88 y se<br />

asignará a registro3. De esta manera, se puede pensar en la operación cin como una operación de<br />

asignación. Cuando se use el operador >>, un valor escrito desde el teclado será extraído del<br />

flujo de entrada y será asignado a la variable listada en el enunciado cin. En la figura 7.2 se<br />

muestra el contenido de la memoria temporal para estas entradas.<br />

74 CRLF 92 CRLF 88 CRLF<br />

Flujo de entrada 74¿<br />

92¿<br />

88¿<br />

Teclado<br />

Figura 7.2. Flujo de entrada de datos.<br />

El usuario también puede escribir estos mismos valores en una línea sencilla, como la<br />

siguiente:<br />

FUNDAMENTOS – <strong>LECCIÓN</strong> 7 7-5

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

Saved successfully!

Ooh no, something went wrong!