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 />

USO <strong>DE</strong> gets() Y fgets() PARA LEER CA<strong>DE</strong>NAS<br />

Hay una serie de funciones que manejan la E/S de cadenas en C y C++. Dos de estas<br />

funciones se listan en la tabla.7.1. Estas funciones se proporcionan en el archivo de encabezado<br />

stdio.h. De hecho, hay muchas funciones de E/S en este archivo, pero en este curso solo<br />

necesitaremos emplear las funciones de E/S para cadenas. Las funciones gets() y fgets()<br />

solucionarán el problema que tenemos con getline()<br />

Tabla 7.1. Funciones de E/S de cadenas en C y C++<br />

Función Descripción<br />

gets() Lee la cadena de entrada. Convierte el CRLF en un<br />

terminador nulo.<br />

fgets() Lee la cadena de entrada. Lee el CRLF y le adiciona<br />

un terminador nulo<br />

Para usar gets() y fgets(), deberá incluir el archivo de cabecera stdio.h y pasar uno o mas<br />

argumentos a la función respectiva. Este es el formato para ambas funciones:<br />

gets();<br />

fgets(, , stdin);<br />

La función gets() sólo necesita que el identificador de la variable cadena pase a la<br />

función. La función fgets() necesita el identificador de la cadena, el tamaño del arreglo de<br />

caracteres y la palabra stdin.<br />

En la tabla 7.1 se puede ver que gets() convertirá el carácter CRLF (producido por la<br />

tecla ENTER) en un terminador nulo. De esta manera, ningún CRLF se almacenará en la cadena<br />

con gets() Sin embargo, fgets() lee el carácter CRLF almacenándolo en el arreglo de caracteres y<br />

adiciona el terminador nulo. Como resultado, los caracteres CRLF y el terminador nulo siempre<br />

ocuparán al menos 2 bytes de la cadena.<br />

Ejemplo 7.18<br />

El siguiente programa: GETSFGETS.CPP, ilustra el uso de las funciones gets() y fgets()<br />

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

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

Saved successfully!

Ooh no, something went wrong!