Função arduino sscanf ()
Na programação Arduino, podemos armazenar símbolos, caracteres, números ou qualquer outro dados dentro de uma string. Para ler os dados de uma string, usamos o sscanf () função; Ele não apenas lê os dados, mas também pode armazená -los dentro de uma nova variável. Geralmente, nos dados de programação C é lida usando Scanf () Mas, usando esta função, só podemos ler dados usando o console, se alguém quiser ler uma entrada da string ou qualquer outro texto que a função sscanf () seja usada.
Sintaxe
Para ler dados de uma string, devemos saber como a função funciona. Abaixo está a sintaxe da função sscanf ().
int sscanf (char *dados, char *formato, storage_variables);No código acima, o primeiro argumento representa a entrada que contém os dados do caractere ou da matriz de string que devem ser lidos usando o formato definido no segundo argumento. Podemos listar dados disponíveis em diferentes variáveis, definindo o formato no segundo argumento.
Parâmetros
Especificadores de formato
O sscanf () A função usa diferentes especificadores de formato que podem armazenar dados de uma certa maneira. É um conjunto único de caracteres precedidos por % sinal seguido de símbolos de caracteres relevantes. Os símbolos a seguir são geralmente usados:
Símbolo | Tipo |
s | Corda |
c | Char único |
d | Decimal int |
e, e, f, g, g | Pontos flutuantes |
você | Não assinado int |
x, x | Num hexadecimal |
Valor de retorno
Exemplos
Agora que conhecemos a sintaxe e o trabalho da função sscanf (), vamos dar um exemplo para entendê -lo melhor.
1. Lendo um item do mesmo tipo
O primeiro exemplo explicará como podemos ler apenas uma única entrada de tipo de dados de uma string e armazená -la dentro de uma nova variável.
Código
Void Setup ()Aqui neste código primeiro começamos a comunicação serial para imprimir resultados no monitor serial. Em seguida, uma matriz de char é definida usando uma variável amortecedor. O comprimento da matriz é definido como 10, o que pode variar de acordo. Uma nova variável é inicializada que armazenará o número total de entradas lidas.
Em seguida, usando o sscanf () A string de função será armazenada dentro de uma nova variável input_string. Aqui em sscanf () usamos o especificador de formato %s Porque ele só lerá strings como entrada. Ambos os resultados serão impressos no monitor serial.
Saída
A saída mostra que uma string é tomada como entrada e armazenada dentro de uma nova variável input_string.
2. Lendo vários itens de diferentes tipos
Este exemplo explicará como o sscanf () receberá dados de vários tipos de dados de uma única string de entrada.
Código
Void Setup ()No código acima, criamos um dados variável que pode armazenar a string fornecida. Três datas variáveis diferentes, ano e mês armazenarão a entrada de leitura da string separadamente. mês A variável é inicializada com tamanho de 10 que pode ser modificado de acordo.
Próximo sscanf () A função lerá os dados da entrada e os armazenará em três variáveis diferentes. Como data e ano, ambos representam um valor inteiro %d O símbolo é usado junto com o número 2 e 4, o que representa quantos números queremos ler. O %s O símbolo é usado com o mês que retornará caracteres até que um espaço branco chegue.
Se não houver espaço entre dados, podemos usar %c junto com um número que representará o número de caracteres que queremos ler. Todas as leituras de dados serão impressas separadamente usando Serial.println ().
Saída
A saída mostra a sequência de entrada. O sscanf () lerá dados e os armazenará em três variáveis separadas.
Conclusão
Geralmente, durante a programação na linguagem C, lemos a entrada do usuário usando a função scanf (), mas é limitada apenas ao console. Para ler dados de uma string definida e armazená -lo separadamente em várias variáveis que usamos sscanf () função na programação arduino. Esta redação irá ajudá -lo a entender sscanf () e leia dados de strings definidos.