Para leer un valor de cadena con espacios, podemos usar get() o fgets() en el lenguaje de programación C. Aquí veremos cuál es la diferencia entre get() y fgets().
fget()
fgets() lee una línea de la secuencia especificada y la almacena en la cadena a la que apunta str. Se detiene cuando se leen (n-1) caracteres, se lee el carácter de nueva línea o se llega al final del archivo, lo que ocurra primero.
Sintaxis
char * fgets (char * str , int n , FILE * stream );>
Parámetros
- str: puntero a una matriz de caracteres donde se copia la cadena leída. n: número máximo de caracteres que se copiarán en str (incluido el carácter nulo final). *flujo: puntero a un objeto ARCHIVO que identifica un flujo de entrada.
Nota: entrada estándar se puede utilizar como argumento para leer desde la entrada estándar.
Valor de retorno
- La función fgets() devuelve un puntero a la cadena donde se almacena la entrada.
Características de fgets()
- Sigue algunos parámetros como la longitud máxima, el búfer y la referencia del dispositivo de entrada.
- Es seguro usar porque verifica el límite de la matriz.
- Sigue leyendo hasta que se encuentra un carácter de nueva línea o el límite máximo de la matriz de caracteres.
Ejemplo de fgets()
Digamos que el número máximo de caracteres es 15 y la longitud de entrada es mayor que 15, pero aún así fgets() leerá solo 15 caracteres y los imprimirá.
C
¿Cuál es el tamaño de la pantalla de mi computadora?
variable global js
// C program to illustrate fgets()> #include> #define MAX 15> int> main()> {> >// defining buffer> >char> buf[MAX];> >// using fgets to take input from stdin> >fgets>(buf, MAX, stdin);> >printf>(>'string is: %s
'>, buf);> >return> 0;> }> |
>
cadena dividida java por delimitador
>
Dado que fgets() lee la entrada del usuario, debemos proporcionarla durante el tiempo de ejecución.
Input: Hello and welcome to techcodeview.com Output: string is: Hello and welc>
obtiene()
Lee caracteres de la entrada estándar (stdin) y los almacena como una cadena C en str hasta que se alcanza un carácter de nueva línea o el final del archivo.
- No es seguro de usar porque no verifica el límite de la matriz.
- Se utiliza para leer cadenas del usuario hasta que no se encuentra un carácter de nueva línea.
Sintaxis
char * gets ( char * str );>
Parámetros
- str: puntero a un bloque de memoria (matriz de caracteres) donde la cadena leída se copia como una cadena C.
Valor de retorno
- La función devuelve un puntero a la cadena donde se almacena la entrada.
Ejemplo de obtiene()
Supongamos que tenemos una matriz de caracteres de 15 caracteres y la entrada es mayor que 15 caracteres, gets() leerá todos estos caracteres y los almacenará en una variable. Dado que get() no comprueba el límite máximo de caracteres de entrada, en cualquier momento el compilador puede devolver un error de desbordamiento del búfer.
C++
clase de cadena java
hora de la cena versus la hora de la cena
// C program to illustrate> // gets()> #include> #define MAX 15> int> main()> {> >// defining buffer> >char> buf[MAX];> >printf>(>'Enter a string: '>);> >// using gets to take string from stdin> >gets>(buf);> >printf>(>'string is: %s
'>, buf);> >return> 0;> }> |
>
>
Dado que get() lee la entrada del usuario, debemos proporcionar información durante el tiempo de ejecución.
Input : Hello and welcome to techcodeview.com Output : Hello and welcome to techcodeview.com>
Conclusión
Ambas funciones fgets() y gets() se pueden utilizar para leer la entrada de cadena desde la entrada estándar. La principal diferencia entre la función fgets() y la función gets() es que la función fgets() permite al usuario especificar el número máximo de caracteres para leer y también podemos cambiar el flujo de entrada a cualquier archivo en fgets().