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