Función arduino sscanf ()
En la programación de Arduino podemos almacenar símbolos, caracteres, números o cualquier otro datos dentro de una cadena. Para leer los datos de una cadena usamos el sscanf () función; No solo lee los datos, sino que también puede almacenarlos dentro de una nueva variable. En general, en C, los datos de programación se leen utilizando Scanf () Pero utilizando esta función solo podemos leer datos usando la consola, si uno quiere leer una entrada de String o cualquier otro texto que se use la función sscanf ().
Sintaxis
Para leer datos de una cadena debemos saber cómo funciona la función. A continuación se muestra la sintaxis de la función sscanf ().
int sscanf (char *data, char *formato, almacenamiento_variables);En el código anterior, el primer argumento representa la entrada que contiene los datos de la matriz de carácter o cadena que se lee utilizando el formato definido en el segundo argumento. Podemos enumerar los datos disponibles en diferentes variables definiendo el formato en el segundo argumento.
Parámetros
Formato de especificadores
El sscanf () La función utiliza diferentes especificadores de formato que pueden almacenar datos de cierta manera. Es un conjunto único de caracteres precedidos por % de signo seguido de símbolos de caracteres relevantes. Los siguientes símbolos generalmente se usan:
Símbolo | Tipo |
s | Cadena |
C | Charla |
d | Decimal int |
E, E, F, G, G | Puntos flotantes |
U | Unsigned int |
x, x | Numadeño hexadecimal |
Valor de retorno
Ejemplos
Ahora que conocemos la sintaxis y el funcionamiento de la función sscanf (), tomemos un ejemplo para entenderlo mejor.
1. Leer un elemento del mismo tipo
El primer ejemplo explicará cómo podemos leer solo una entrada de tipo de datos de una cadena y almacenarla dentro de una nueva variable.
Código
setup () voidAquí en este código primero comenzamos la comunicación en serie para imprimir resultados en el monitor en serie. A continuación, se define una matriz de caracteres utilizando una variable buffer. La longitud de la matriz se establece en 10, que puede variar en consecuencia. Se inicializa una nueva variable que almacenará el número total de entradas leídas.
A continuación usando el sscanf () La cadena de funciones se almacenará dentro de una nueva variable entrada_string. Aquí en sscanf () usamos el especificador de formato %s porque solo leerá cadenas como entrada. Ambos resultados se imprimirán en el monitor en serie.
Producción
La salida muestra que una cadena se toma como entrada y se almacena dentro de una nueva variable entrada_string.
2. Leer múltiples elementos de diferentes tipos
Este ejemplo explicará cómo sscanf () tomará datos de múltiples tipos de datos de una sola cadena de entrada.
Código
setup () voidEn el código anterior hemos creado un datos variable que puede almacenar la cadena dada. Tres fechas variables diferentes, año y mes almacenarán la entrada de lectura de la cadena por separado. mes La variable se inicializa con un tamaño de 10 que se puede modificar en consecuencia.
Próximo sscanf () la función leerá los datos de la entrada y los almacenará en tres variables diferentes. Como fecha y año, ambos representan un valor entero así %d El símbolo se usa junto con el número 2 y 4 que representa cuántos números queremos leer. El %s El símbolo se usa con mes que devolverá los caracteres hasta que llegue un espacio en blanco.
Si no hay espacio entre los datos, entonces podemos usar %C junto con un número que representará el número de caracteres que queremos leer. Todos los datos leídos se imprimirán por separado utilizando De serie.println ().
Producción
La salida muestra la cadena de entrada. Sscanf () leerá datos y los almacenará en tres variables separadas.
Conclusión
En general, mientras se programamos en el lenguaje C, leemos la entrada del usuario usando la función Scanf (), pero solo se limita a la consola. Para leer datos de una cadena definida y almacenarlos por separado en múltiples variables que utilizamos sscanf () función en la programación Arduino. Esta redacción lo ayudará a comprender sscanf () y leer datos de cadenas definidas.