scanf (Caracteres de campo de tipo)

La siguiente información se aplica a la familia cualquiera de scanf de funciones, incluidas las versiones seguras, como scanf_s.

El carácter de type es el único campo necesario de formato; se produce después de cualquier campo opcional de formato. El carácter de type determina si el argumento asociado se interpreta como un carácter, una cadena, o número.

Caracteres de tipo para las funciones scanf

Carácter

Tipo de entrada esperado

Tipo de argumento

¿Argumento de tamaño en la versión segura?

c

Character. Cuando se utiliza con scanf funciona, especifica el carácter de solo- byte; cuando se utiliza con wscanf funciona, especifica el carácter ancho. Se leen los caracteres de espacio en blanco que se omiten normalmente cuando se especifica c . Para leer el siguiente carácter del solo- byte no-blanco- espacio, utilice %1s; para leer el carácter ancho siguiente de no-blanco- espacio, utilice %1ws.

El puntero a char cuando se utiliza con scanf funciona, puntero a wchar_t cuando se utiliza con wscanf funciona.

Obligatorio. El tamaño no incluye el espacio para un carácter null final.

C

Carácter opuesto de tamaño. Cuando se utiliza con scanf funciona, especifica el carácter ancho; cuando se utiliza con wscanf funciona, especifica el carácter de solo- byte. Se leen los caracteres de espacio en blanco que se omiten normalmente cuando se especifica C . Para leer el siguiente carácter del solo- byte no-blanco- espacio, utilice %1s; para leer el carácter ancho siguiente de no-blanco- espacio, utilice %1ws.

El puntero a wchar_t cuando se utiliza con scanf funciona, puntero a char cuando se utiliza con wscanf funciona.

Obligatorio. El argumento de tamaño no incluye el espacio para un carácter null final.

d

Entero decimal.

Puntero a int.

No.

i

Entero. Hexadecimal si la cadena de entrada comienza con “0x” o “0X”, octal si la cadena comienza con “0 ", si no decimal.

Puntero a int.

No.

o

Entero octal.

Puntero a int.

No.

u

Entero decimal sin signo.

Puntero a unsignedint.

No.

x

Entero hexadecimal.

Puntero a int.

No.

e, E, f, g, G

El valor de punto flotante que se compone del signo opcional (+ o –), la ejecución de uno o más dígitos decimales que contienen el separador decimal, y el exponente opcional (“e” o “E”) seguido de un valor entero opcionalmente firmado.

Puntero a float.

No.

n

Ninguna entrada leída de secuencia o del búfer.

El puntero a int, en las que es el número de caracteres almacenado correctamente lee de secuencia o del búfer hasta ese punto de llamada actual a las funciones o a wscanf de scanf funciona.

No.

s

Cadena, hasta el primer carácter de espacio en blanco (espacio, ficha o nueva línea). Para leer cadenas no delimitadas por los caracteres de espacio, use el conjunto de corchetes ([ ]), como se describe en scanf (Especificación de ancho).

Cuando se utiliza con scanf funciona, significa la matriz de caracteres de solo- byte; cuando se utiliza con wscanf funciona, significa matriz de caracteres. En cualquier caso, la matriz de caracteres debe ser lo suficientemente grande para el campo de entrada más finalizar el carácter null, que automáticamente se anexa.

Obligatorio. El tamaño incluye el espacio para un carácter null final.

S

Cadena de caracteres de Opuesto- tamaño, hasta el primer carácter de espacio en blanco (espacio, ficha o nueva línea). Para leer cadenas no delimitadas por los caracteres de espacio, use el conjunto de corchetes ([ ]), como se describe en scanf (Especificación de ancho).

Cuando se utiliza con scanf funciona, significa matriz de caracteres; cuando se utiliza con wscanf funciona, significa la matriz de solo-byte- carácter. En cualquier caso, la matriz de caracteres debe ser lo suficientemente grande para el campo de entrada más finalizar el carácter null, que automáticamente se anexa.

Obligatorio. El tamaño incluye el espacio para un carácter null final.

Los especificadores de a y de A (vea printf (Caracteres de campo de tipo)) no están disponibles con scanf.

Los argumentos de tamaño, si es necesario, se debe pasar en la lista de parámetros inmediatamente después del argumento que se aplican a. Por ejemplo, el código siguiente:

char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);

lee una cadena con una longitud máxima de 10 en string1, y una cadena con una longitud máxima de 8 en string2. Los tamaños de búfer deben ser por lo menos uno más que las especificaciones de ancho puesto que se debe reservar espacio para el terminador nulo.

La cadena de formato puede controlar el solo- byte o carácter ancho escribió independientemente de la versión de caracteres o de caracteres anchos de solo- byte de la función se utiliza. Así, leer el solo- bytes o caracteres anchos con las funciones de scanf y las funciones de wscanf , especificadores de formato de uso como sigue.

El carácter de lectura como

Utilice esta función

Con estos especificadores de formato

byte único

Funciones scanf

c, hc o hC

byte único

Funciones wscanf

C, hc o hC

de ancho

Funciones wscanf

c, lc o lC

de ancho

Funciones scanf

C, lc o lC

Buscar cadenas con funciones de scanf , y las funciones de wscanf , utilice la tabla anterior con los tipo- especificadores s y S de formato en lugar de c y de C.

Vea también

Referencia

scanf, _scanf_l, wscanf, _wscanf_l