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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!