5 min de lectura

En programación existen diferentes métodos para cin, como get, getline e ignore. A continuación se explica cada uno de ellos.

Como leer en C++ con cin incluyendo espacios con el método get

En C++ es posible leer datos separados por espacios en blanco o intro, por medio del operador de extracción sobre cin (>>). Más si se quieren leer caracteres, incluyendo los espacios en blanco o intro, se utiliza el método de get. Get extrae un caracter de cin y lo guarda en la variable. Si se extrae y es el fin del fichero, se activa el indicador de fin de fichero. Si el buffer de entrada se encuentra vacío, cuando el programa llega a la instrucción, se detiene en espera de teclear un caracter y pulsar intro.

cin.get (caracter) ;

*García Enrique H. (2014). “Leer caracteres y cadenas de caracteres en C++”, en Programación C++. Disponible en: http://ejercicioscpp.blogspot.mx/2013/07/c-leer-caracteres-cadenas-de-caracteres.html (22/02/16).

SALIDA DEL PROGRAMA:

Introduce un numero entero: 20

El numero es par

Introduce un caracter: El caracter no es una letra minuscula

Presione una tecla para continuar . . .

 

El intro también se extrae del flujo de caracteres.

Al tener un flujo de entrada cin (18\n), por medio de la instrucción cin >> num; se le asigna a num el valor 18. El valor se extrae de cin pero permanece el \n, por lo que se tiene un flujo de entrada después de leer el entero: \n.

Cuando se llega a cin.get(c); se extrae de cin el intro y se asigna a c. Esto causa que no se detenga la ejecución del programa para introducir el caracter, por lo que se produce un resultado no deseado.

Ahora es necesario limpiar el buffer con el método de ignore.

Como limpiar el buffer con ignore

*García Enrique H. (2014). “Leer caracteres y cadenas de caracteres en C++”, en Programación C++. Disponible en: http://ejercicioscpp.blogspot.mx/2013/07/c-leer-caracteres-cadenas-de-caracteres.html (22/02/16).

Como leer en C++ con cin incluyendo espacios con el método getline

El operador de extracción sobre cin no sirve para leer cadenas de caracteres con espacios en blanco.  Para esto se utiliza el método getline.

cin.getline(cadena, número, caracter final)

Getline lee la serie de caracteres desde el flujo de entrada y los guarda en la variable cadena. Se leen hasta el final del flujo, hasta el primer caracter que coincide con el caracter final que se haya especificado.  Getline añade el caracter nulo al final de la cadena de manera automática.

El siguiente programa muestra la diferencia al leer cadenas de caracteres con y sin el método de getline:


*García Enrique H. (2014). “Leer caracteres y cadenas en C++”, en Programación C++. Disponible en: http://ejercicioscpp.blogspot.mx/2013/07/c-leer-caracteres-cadenas-de-caracteres.html /22/02/2016).

SALIDA DEL PROGRAMA:

Introduce nombre y apellidos: Emilio Perez Ochoa

Hola Emilio Perez Ochoa

Introduce nombre y apellidos: Emilio Perez Ochoa

Hola Emilio

Presione una tecla para continuar . . .

 

Fuente (s):

*García Enrique H. (2014). “Leer caracteres y cadenas de caracteres en C++”, en Programación C++. Disponible en: http://ejercicioscpp.blogspot.mx/2013/07/c-leer-caracteres-cadenas-de-caracteres.html (22/02/2016).

Compartir
Actualmente, estudiante en Ingeniería en Electrónica y Comunicaciones (INCE).

DEJA UNA RESPUESTA

Please enter your comment!
Please enter your name here