Función de biblioteca C - scanf ()

Descripción

La función de la biblioteca C int scanf(const char *format, ...) lee la entrada formateada de stdin.

Declaración

A continuación se muestra la declaración de la función scanf ().

int scanf(const char *format, ...)

Parámetros

  • format - Esta es la cadena C que contiene uno o más de los siguientes elementos -

    Carácter de espacio en blanco, carácter que no es de espacio en blanco y especificadores de formato . Un especificador de formato será como[=%[*][width][modifiers]type=] como se explica a continuación -

No Señor. Argumento y descripción
1

*

Este es un asterisco inicial opcional que indica que los datos se leerán del flujo pero se ignorarán, es decir, no se almacenan en el argumento correspondiente.

2

width

Esto especifica el número máximo de caracteres que se leerán en la operación de lectura actual.

3

modifiers

Especifica un tamaño diferente de int (en el caso de d, iyn), unsigned int (en el caso de o, uyx) o float (en el caso de e, fyg) para los datos apuntados por argumento adicional correspondiente: h: short int (para d, iyn), o unsigned short int (para o, u y x) l: long int (para d, iyn), o unsigned long int (para o, u y x), o doble (para e, f y g) L: doble largo (para e, f y g)

4

type

Un carácter que especifica el tipo de datos que se leerán y cómo se espera que se lean. Consulte la siguiente tabla.

especificadores de tipo fscanf

tipo Entrada de calificación Tipo de argumento
C Carácter único: lee el siguiente carácter. Si se especifica un ancho diferente de 1, la función lee los caracteres de ancho y los almacena en las ubicaciones sucesivas de la matriz pasada como argumento. No se agrega ningún carácter nulo al final. char *
re Entero decimal: Número opcionalmente precedido por un signo + o - En t *
e, E, f, g, G Punto flotante: número decimal que contiene un punto decimal, opcionalmente precedido por un signo + o - y opcionalmente seguido por el carácter e o E y un número decimal. Dos ejemplos de entradas válidas son -732.103 y 7.12e4 flotar *
o Entero octal: En t *
s Cadena de caracteres. Esto leerá los caracteres posteriores hasta que se encuentre un espacio en blanco (los espacios en blanco se consideran en blanco, nueva línea y tabulación). char *
tu Entero decimal sin signo. unsigned int *
x, X Entero hexadecimal En t *
  • additional arguments- Dependiendo de la cadena de formato, la función puede esperar una secuencia de argumentos adicionales, cada uno con un valor que se insertará en lugar de cada% -tag especificado en el parámetro de formato, si lo hubiera. Debe haber el mismo número de estos argumentos que el número de% -tags que esperan un valor.

Valor devuelto

En caso de éxito, la función devuelve el número de elementos de la lista de argumentos leídos correctamente. Si ocurre un error de lectura o se alcanza el final del archivo durante la lectura, se establece el indicador adecuado (feof o ferror) y, si ocurre algo antes de que los datos se puedan leer correctamente, se devuelve EOF.

Ejemplo

El siguiente ejemplo muestra el uso de la función scanf ().

#include <stdio.h>

int main () {
   char str1[20], str2[30];

   printf("Enter name: ");
   scanf("%s", str1);

   printf("Enter your website name: ");
   scanf("%s", str2);

   printf("Entered Name: %s\n", str1);
   printf("Entered Website:%s", str2);
   
   return(0);
}

Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado en modo interactivo:

Enter name: admin
Enter your website name: www.tutorialspoint.com

Entered Name: admin
Entered Website: www.tutorialspoint.com