Latest web development tutorials

funciones de la biblioteca C - sscanf ()

C biblioteca estándar - <stdio.h> C biblioteca estándar - <stdio.h>

descripción

funciones de la biblioteca Cint sscanf (const char * str, const char * formato, ...) para leer la entrada con formato de una cadena.

declaración

Aquí es) a función más sscanf (.

int sscanf(const char *str, const char *format, ...)

parámetros

  • str - Esta es una cadena C, la función recupera los datos de origen.
  • Formato - Esta es una cadena C que contiene los siguientes elementos en uno o más de:los caracteres de espacio, los caracteres no-espacialesy especificadores de formato.
    especificador de formato de la forma[=% [*] [ancho ] [modificadores] type =], la explicación específica de la siguiente manera:
参数描述
*这是一个可选的星号,表示数据是从流 stream 中读取的,但是可以被忽视,即它不存储在对应的参数中。
width这指定了在当前读取操作中读取的最大字符数。
modifiers为对应的附加参数所指向的数据指定一个不同于整型(针对 d、i 和 n)、无符号整型(针对 o、u 和 x)或浮点型(针对 e、f 和 g)的大小: h :短整型(针对 d、i 和 n),或无符号短整型(针对 o、u 和 x) l :长整型(针对 d、i 和 n),或无符号长整型(针对 o、u 和 x),或双精度型(针对 e、f 和 g) L :长双精度型(针对 e、f 和 g)
type一个字符,指定了要被读取的数据类型以及数据读取方式。具体参见下一个表格。

Tipo sscanf especificador:

类型合格的输入参数的类型
c单个字符:读取下一个字符。如果指定了一个不为 1 的宽度 width,函数会读取 width 个字符,并通过参数传递,把它们存储在数组中连续位置。在末尾不会追加空字符。char *
d十进制整数:数字前面的 + 或 - 号是可选的。int *
e,E,f,g,G浮点数:包含了一个小数点、一个可选的前置符号 + 或 -、一个可选的后置字符 e 或 E,以及一个十进制数字。两个有效的实例 -732.103 和 7.12e4float *
o八进制整数。int *
s字符串。这将读取连续字符,直到遇到一个空格字符(空格字符可以是空白、换行和制表符)。char *
u无符号的十进制整数。unsigned int *
x,X十六进制整数。int *
  • Los parámetros adicionales - Esta función toma un puntero como una serie de parámetros adicionales, cada uno, un puntero a un objeto, el tipo de objeto está especificado por la cadena de formato% label% etiqueta correspondiente parámetro de orden es el mismo.

    Para cadena de formato para recuperar datos para cada especificador de formato, especifique un parámetro adicional. Si usted quiere poner en una variable ordinaria, que debe ser colocado en frente del operador operador del resultado de referencia de almacenamiento de identificador sscanf (Y), por ejemplo:

        int n;
        sscanf (str,"%d",&amp;n);
    

Valor de retorno

Si tiene éxito, la función devuelve el número de igualado y ha asignado correctamente. Si se llega al final del archivo o se produce un error de lectura, devuelve EOF.

Ejemplos

El siguiente ejemplo muestra se utiliza la función sscanf ().

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int day, year;
   char weekday[20], month[20], dtm[100];

   strcpy( dtm, "Saturday March 25 1989" );
   sscanf( dtm, "%s %s %d  %d", weekday, month, &day, &year );

   printf("%s %d, %d = %s\n", month, day, year, weekday );
    
   return(0);
}

Vamos a compilar y ejecutar el programa anterior, lo que resultará en lo siguiente:

March 25, 1989 = Saturday

C biblioteca estándar - <stdio.h> C biblioteca estándar - <stdio.h>