Funkcja Arduino sscanf ()
W programowaniu Arduino możemy przechowywać symbole, znaki, liczby lub inne dane w ciągu ciągu. Aby odczytać dane z ciągu używamy sscanf () funkcjonować; Nie tylko odczytuje dane, ale może również przechowywać je w nowej zmiennej. Zasadniczo w danych programowania C są odczytywane za pomocą Scanf () Ale za pomocą tej funkcji możemy odczytać dane za pomocą konsoli, jeśli ktoś chce odczytać dane wejściowe z ciągu lub dowolnego innego tekstu, używana jest funkcja sscanf ().
Składnia
Aby odczytać dane z ciągu, musimy wiedzieć, jak działa funkcja. Poniżej znajduje się składnia funkcji sscanf ().
int sscanf (char *dane, format char *, storage_variables);W powyższym kodzie pierwsza argument przedstawia wejście, które zawiera dane tablicy znaków lub ciągów, które mają być odczytane przy użyciu formatu zdefiniowanego w drugim argumencie. Możemy wymienić dostępne dane w różnych zmiennych, definiując format w drugim argumencie.
Parametry
Specyfikatory formatu
sscanf () Funkcja używa różnych specyfikatorów formatu, które mogą przechowywać dane w określony sposób. Jest to unikalny zestaw znaków poprzedzonych znakiem %, a następnie odpowiednich symboli znaków. Zwykle używane są następujące symbole:
Symbol | Typ |
S | Strunowy |
C | Pojedynczy char |
D | Dziesiętne int |
e, e, f, g, g | Pływające punkty |
U | Niepodpisany int |
x, x | Heksadecimal Num |
Wartość zwracana
Przykłady
Teraz, gdy znamy składnię i działanie funkcji sscanf (), weźmy przykład, aby to lepiej zrozumieć.
1. Czytanie jednego elementu tego samego typu
Pierwszy przykład wyjaśni, w jaki sposób możemy odczytać tylko pojedyncze wejście typu danych z łańcucha i przechowywać w nowej zmiennej.
Kod
void setup ()Tutaj w tym kodzie najpierw rozpoczynamy komunikację szeregową, aby wydrukować wyniki na monitor szeregowych. Następnie tablica char jest definiowana za pomocą zmiennej bufor. Długość tablicy jest ustawiona na 10, co może się odpowiednio się różnić. Inicjowana jest nowa zmienna, która będzie przechowywać całkowitą liczbę odczytu danych wejściowych.
Następnie za pomocą sscanf () Ciąg funkcji będzie przechowywany w nowej zmiennej Input_String. Tutaj, w sscanf () używamy specyfikatora formatu %S Ponieważ będzie odczytać tylko ciągi jako dane wejściowe. Oba wyniki zostaną wydrukowane na monitorze szeregowym.
Wyjście
Wyjście pokazuje, że ciąg jest przyjmowany jako wejście i przechowywane w nowej zmiennej Input_String.
2. Czytanie wielu elementów różnych typów
Ten przykład wyjaśni, w jaki sposób sscanf () przyjmie dane wielu typów danych z jednego ciągu wejściowego.
Kod
void setup ()W powyższym kodzie utworzyliśmy dane zmienna, która może przechowywać dany ciąg. Trzy różne daty zmiennych, rok i miesiąc będą przechowywać wkład odczytu z ciągu osobno. miesiąc Zmienna jest inicjowana z rozmiarem 10, którą można odpowiednio modyfikować.
Następny sscanf () Funkcja odczytuje dane z wejścia i przechowuje je w trzech różnych zmiennych. Jako data i rok reprezentują więc wartość całkowitą %D Symbol jest używany wraz z numerem 2 i 4, który reprezentuje liczbę liczb, które chcemy przeczytać. %S Symbol jest używany z miesiącem, który zwraca postacie, aż nadejdzie biała przestrzeń.
Jeśli nie ma miejsca między danymi, możemy użyć %C wraz z liczbą, która będzie reprezentować liczbę znaków, które chcemy przeczytać. Wszystkie odczyt danych zostaną wydrukowane osobno za pomocą Seryjny.println ().
Wyjście
Wyjście pokazuje ciąg wejściowy. Sscanf () odczytuje dane i przechowuje je w oddzielnych trzech zmiennych.
Wniosek
Zasadniczo, podczas gdy programowanie w języku C odczytujemy wejście od użytkownika za pomocą funkcji scanf (), ale jest on ograniczony tylko do konsoli. Aby odczytać dane z zdefiniowanego ciągu i przechowywać je osobno w wielu używanych zmiennych sscanf () Funkcja w programowaniu Arduino. Ten zapis pomoże ci zrozumieć sscanf () i odczyt dane z zdefiniowanych strun.