Fonction arduino sscanf ()
Dans la programmation Arduino, nous pouvons stocker des symboles, des caractères, des nombres ou toute autre donnée à l'intérieur d'une chaîne. Pour lire les données d'une chaîne, nous utilisons le sscanf () fonction; Il lit non seulement les données, mais peut également les stocker dans une nouvelle variable. Généralement, en C, les données de programmation sont lues en utilisant Scanf () Mais en utilisant cette fonction, nous ne pouvons lire les données qu'à l'aide de la console, si l'on veut lire une entrée de chaîne ou tout autre texte, la fonction SSCanf () est utilisée.
Syntaxe
Pour lire les données d'une chaîne, nous devons savoir comment fonctionne la fonction. Vous trouverez ci-dessous la syntaxe de la fonction sscanf ().
int SSCanf (char * data, char * format, Storage_variables);Dans le code ci-dessus, le premier argument représente l'entrée qui contient les données de caractères ou de chaînes qui doivent être lues en utilisant le format défini dans le deuxième argument. Nous pouvons énumérer les données disponibles dans différentes variables en définissant le format dans le deuxième argument.
Paramètres
Spécificateurs de format
Le sscanf () La fonction utilise différents spécificateurs de format qui peuvent stocker des données d'une certaine manière. Il s'agit d'un ensemble unique de caractères précédés de% de signe suivis de symboles de caractères pertinents. Les symboles suivants sont généralement utilisés:
Symbole | Taper |
s | Chaîne |
c | Charbon unique |
d | Décimal int |
E, E, F, G, G | Points flottants |
U | Insigned int |
x, x | Num hexadécimal |
Valeur de retour
Exemples
Maintenant que nous connaissons la syntaxe et le travail de la fonction sscanf (), prenons un exemple pour mieux le comprendre.
1. Lire un élément du même type
Le premier exemple expliquera comment nous ne pouvons lire qu'une seule entrée de type de données d'une chaîne et la stocker dans une nouvelle variable.
Code
void setup()Ici, dans ce code, nous commençons d'abord la communication en série pour imprimer les résultats sur le moniteur série. Ensuite, un tableau char est défini à l'aide d'une variable amortir. La longueur du tableau est définie sur 10, ce qui peut varier en conséquence. Une nouvelle variable est initialisée qui stockera le nombre total d'entrées.
Ensuite en utilisant le sscanf () La chaîne de fonction sera stockée à l'intérieur d'une nouvelle variable input_string. Ici dans sscanf (), nous utilisons le spécificateur de format % s car il ne lira que des chaînes comme entrée. Les deux résultats seront imprimés sur le moniteur en série.
Sortir
La sortie montre qu'une chaîne est prise en entrée et stockée dans une nouvelle variable input_string.
2. Lire plusieurs éléments de différents types
Cet exemple expliquera comment sscanf () prendra les données de plusieurs types de données à partir d'une seule chaîne d'entrée.
Code
void setup()Dans le code ci-dessus, nous avons créé un données variable qui peut stocker la chaîne donnée. Trois dates variables différentes, l'année et le mois stockeront séparément l'entrée de lecture de la chaîne. mois la variable est initialisée avec une taille de 10 qui peut être modifiée en conséquence.
Suivant sscanf () La fonction lira les données de l'entrée et les stockera en trois variables différentes. Comme la date et l'année représentent les deux une valeur entière donc %d Le symbole est utilisé avec les numéro 2 et 4 qui représente le nombre de nombres que nous voulons lire. Le % s Le symbole est utilisé avec le mois qui retournera les caractères jusqu'à ce qu'un espace blanc arrive.
S'il n'y a pas d'espace entre les données, alors nous pouvons utiliser % c avec un nombre qui représentera le nombre de caractères que nous voulons lire. Toutes les données lues seront imprimées séparément en utilisant En série.println ().
Sortir
La sortie montre la chaîne d'entrée. Sscanf () lira les données et les stockera en trois variables distinctes.
Conclusion
Généralement, alors que la programmation du langage C, nous lisons les entrées de l'utilisateur à l'aide de la fonction Scanf (), mais elle n'est limitée qu'à la console. Pour lire les données d'une chaîne définie et la stocker séparément dans plusieurs variables que nous utilisons sscanf () fonction dans la programmation Arduino. Cette écriture vous aidera à comprendre sscanf () et lire les données des chaînes définies.