Cómo utilizar la función fgets () para la introducción de texto en la programación c
Para una función de entrada de texto de uso general en el lenguaje de programación C, uno que lee más allá del primer carácter de espacio en blanco, pruebe los fgets () función. Este es el formato:
Char #include * fgets (char * restringir s, int n, FILE * restringir la corriente) -
Aterrador, ¿no? Esto se debe a fgets () es una función de archivo, que lee el texto de un archivo, como en " cadena get archivo ". Así es como los programadores hablan después de toda la noche.
Debido a que el sistema operativo considera la entrada estándar como un archivo, puede usar fgets () para leer el texto desde el teclado.
Aquí está una versión simplificada de los fgets () función que se aplica a la lectura de la introducción de texto:
fgets (cuerda,tamaño,stdin) -
En este ejemplo, cuerda es el nombre de una matriz de caracteres, una cadena variable tamaño es la cantidad de texto para introducir plus uno, que debe ser el mismo tamaño que el array- carbón y la entrada estándar es el nombre del dispositivo de entrada estándar, como se define en el archivo de cabecera stdio.h.
EL Fgets () FUNCIÓN Lee una cadena
#include int main () {char nombre [10] -printf ("¿Quién eres tú") -fgets (nombre, 10, stdin) -printf ("Me alegro de conocerte,% s. n", nombre) - volver (0) -}
Ejercicio 1: Escriba el código fuente desde el fgets () Función Lee una cadena en un nuevo proyecto, ex0716. Compila y ejecuta.
La función fgets () en la línea 8 lee en el texto. El texto continúa en la matriz nombre, que se establece en un máximo de diez caracteres en la línea 5. El número 10 especifica que fgets () lee en sólo nueve personajes, uno menos que el número especificado. Por último, la entrada estándar se especifica como la " archivo " desde el que se lee de entrada. stdin es stundard enponer.
La matriz de caracteres debe tener un carácter adicional reservada para el 0 en el extremo de una cadena. Su tamaño debe ser igual al tamaño de la entrada que necesita - más uno.
Así es como se ejecuta el programa:
¿Quién eres? Danny GookinMe alegro de conocerte, Danny Goo.
Sólo se muestran los primeros nueve caracteres del texto escrito en la primera línea. ¿Por qué sólo nueve? Dado el carácter de la cadena de terminación - el NULL, o 0. El espacio para este personaje se define cuando se crea la matriz nombre en la línea 5. Si fgets () fuera a leer en diez caracteres en lugar de nueve, la matriz podría desbordarse, y el programa podría funcionar mal.
Ejercicio 2: Cambiar el tamaño de la matriz en el código fuente de la fgets () Función Lee una cadena a un valor constante. Establezca la constante para permitir sólo tres caracteres de entrada.
La función fgets () lee el texto de la entrada estándar, no desde el teclado directamente.
El valor devuelto por fgets () es la cadena que se introdujo.