sscanf ()- Leer datos

Formato

#include <stdio.h>
int sscanf(const char *buffer, const char *format, argument-list);

Nivel de idioma

ANSI

De hebra segura

Sensible al entorno local

El comportamiento de esta función puede verse afectado por las categorías LC_CTYPE y LC_NUMERIC del entorno local actual. El comportamiento también puede verse afectado por la categoría LC_UNI_CTYPE del entorno local actual si se especifica LOCALETYPE (*LOCALEUCS2) o LOCALETYPE (*LOCALEUTF) en el mandato de compilación. Para obtener más información, consulte Descripción de CCSID y entornos locales.

Descripción

La función sscanf() lee datos del almacenamiento intermedio en las ubicaciones que proporciona la lista-argumentos. Cada argumento debe ser un puntero a una variable con un tipo que corresponda a un especificador de tipo en la serie-formato.

Valor de retorno

La función sscanf() devuelve el número de campos que se han convertido y asignado correctamente. El valor de retorno no incluye los campos que se han leído pero no se han asignado.

El valor de retorno es EOF cuando se encuentra el final de la serie antes de convertir nada.

Ejemplo

Este ejemplo utiliza sscanf() para leer diversos datos de la serie tokenstringy, a continuación, muestra dichos datos.

#include <stdio.h>
#include <stddef.h>
 
int main(void)
{
    char    *tokenstring = "15 12 14";
    char    *string = "ABC Z";
    wchar_t  ws[81];
    wchar_t  wc;
    int   i;
    float fp;
    char  s[81];
    char  c;

    /* Input various data                                        */
    /* In the first invocation of sscanf, the format string is   */
    /* "%s %c%d%f". If there were no space between %s and %c,    */
    /* sscanf would read the first character following the       */
    /* string, which is a blank space.                           */

    sscanf(tokenstring, "%s %c%d%f", s, &c, &i, &fp);
    sscanf(string, "%ls %lc", ws,&wc);

    /* Display the data */
    printf("\nstring = %s\n",s);
    printf("character = %c\n",c);
    printf("integer = %d\n",i);
    printf("floating-point number = %f\n",fp);
    printf("wide-character string = %S\n",ws);
    printf("wide-character = %C\n",wc);
}

/*****************  Output should be similar to:  *****************

string = 15
character = 1
integer = 2
floating-point number = 14.000000
wide-character string = ABC
wide-character = Z

*******************************************************************/
 

Información relacionada