Sscanf C ++

Sscanf C ++

C ++ jest szybkim i jednym z najstarszych języków programowania idealnego do rozwoju systemów operacyjnych. Oferuje wysoką wydajność i świetną prędkość oraz obejmuje różne rodzaje aplikacji. Zapewnia bardzo zaawansowaną składnię, co czyni się złożonym i trudnym do nauczenia się. Jego wbudowana funkcjonalność jest jednak bardzo pomocna w tworzeniu dowolnego zastosowania. Konwersja liczb ze strun lub strun z liczb jest dość mylącym zadaniem. Dlatego potrzebujemy niektórych funkcji, które można użyć z konwersją NUM do Str lub Str do NUM. Tutaj nauczymy się używać funkcji SSCANF do konwersji wejścia na określony rodzaj wyjścia.

Funkcja Sscanf C ++

Funkcja SSCANF jest jedną z najczęściej używanych funkcji C ++ do przekształcania liczb w ciągu. Pobiera dane wejściowe od użytkownika lub bufora, przekształca ciąg w INT i przechowuje go w określonej zmiennej. Krótko mówiąc, interpretuje dane wejściowe zgodnie z formatem i przechowuje wynikową wartość w określonej lokalizacji. Jeśli wykonuje podobną funkcję jak scanf, ale odczytuje wejście z bufora zamiast standardowego wejścia.

Zobacz następującą pełną składnię funkcji SSCANF dostarczona przez język programowania C ++:

Funkcja SSCANF ma minimum dwa argumenty wejściowe i listę opcjonalnych argumentów. Opcjonalny argument oznacza, że ​​można je pominąć, jeśli nie jest to konieczne. Odczytuje dane z bufora „wejściowego” w formacie „Format” w lokalizacji określonej przez „argument_list”. Parametr lub argument „wejścia” reprezentuje ciąg funkcji używanej do pobierania danych. Parametr „Format” reprezentuje ciąg formatu, który określa, jak odczytać wejście z bufora.

Format specyfikatora „formatu” jest następujący:

Zaczyna się od % znaku, a następnie *, który jest znakiem tłumienia przypisania. Pola szerokości i długości są opcjonalne i można je pominąć. Jeśli jest dostarczona, funkcja SSCANF zużywa tylko tę maksymalną liczbę znaków określonych przez „szerokość”. Pole „długości” określa rozmiar argumentu odbierającego. Nazwa_pecyfikatora zawiera charakter specyfikatora (C, S, D itp.) W określaniu typu konwersji. „Argument_list” może pomieścić co najmniej jeden dodatkowy argument. To zależy od ciągu „formatu”.

Funkcja SSCANF zwraca trzy typy wyników - pomyślnie przypisane argumenty odbierające w przypadku udanej funkcji, zero w przypadku dopasowania awarii i EOF w przypadku awarii wejściowej. Teraz zbadajmy kilka przydatnych przykładów, aby poznać użycie funkcji SSCANF C++.

Przykład 1:

To bardzo prosty i podstawowy przykład funkcji SSCANF. Ciąg jest przypisany do zmiennej, która jest przekazywana do funkcji SSCANF. „Int a” jest zdefiniowany w celu utrzymania wyniku funkcji sscanf. Zobacz poniższy kod i zrozum każdy wiersz kodu.

Po uwzględnieniu pliku nagłówka iostream metoda main (). String „S = 104785” jest inicjowany i przekazywany do funkcji SSCANF SSCANF (S, „%D”, i a). %D reprezentuje format konwersji. I „A” jest zapewnione w celu utrzymania wyniku.

#włączać
za pomocą przestrzeni nazw Std;
int main ()

const char* s = "104785";
int a;
sscanf (s, „%d” i a);
Cout << "\nThe converted value of "<powrót 0;

Wyjście można zobaczyć tutaj. Ciąg „104785” jest przekonwertowany na liczbę dziesiętną „104785”.

Przykład 2:

W tym przykładzie czytamy Float i Double Float przy użyciu tej samej funkcji SSCANF. Ciąg jest przypisany do zmiennej, która jest przekazywana do funkcji SSCANF dla konwersji formatu. Zobacz następujący kod, aby zrozumieć funkcję sscanf z liczbami float i podwójnych float.

Zauważ, że w poprzednim przykładzie %D jest używany jako „specyfikator formatu”. W tym przykładzie stosuje się %f i %lf. %F służy do konwersji wejścia na liczbę zmiennoprzecinkową, a %LF służy do konwersji liczby na podwójną liczbę zmiennoprzecinkową.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

const char* s = "104785.54 ";
float a;
sscanf (s, „%f” i a);
printf („\ n Wartość zmiennoprzecinka to: %f”, a);
Double B;
sscanf (s, „%lf”, i b);
printf („\ n Double Float Wartość to: %f”, b);
powrót 0;

Sprawdź dane wyjściowe podane następująco:

Należy zauważyć, że wyjście po miejscu dziesiętnym jest inne dla pływaka i podwójnego pływaka. Wynika to z faktu, że pływak zapewnia najbliższy przybliżony wynik i jest wygodny, szybki i precyzyjny. Podczas gdy podwójny pływak zapewnia dokładny obliczony wynik, ponieważ chodzi o niezawodność i dokładność. Jest jednak nieco wolniejszy niż pływak.

Przykład 3:

Zagrajmy w niektóre dane tablicy. W tym przykładzie dane wejściowe jest podawane w postaci tablicy i jest przekształcane w proste ciągi. Specyfikator formatu %S jest używany do konwersji wejścia na ciąg. Tak więc używamy %S jako specyfikatora formatu tutaj. Zdefiniowane są dwie puste tablice, aby przechowywać wyjście - FN [10] i LN [10]. Poniżej znajduje się kod.

Tutaj nazwa składająca się z imienia i nazwiska jest przypisana do tablicy BUF [] i jest przekazywana do funkcji SSCANF, przekształcając każdy element tablicy w ciągu. Po wykonaniu programu kodu zauważysz każdy element tablicy osobno. Ponieważ zdefiniowane są tylko dwa pola wyjściowe (FN i LN), dwa elementy tablicy są pokazywane przez program. Tablica FN [10] zawiera imię „Daniyal”. A tablica LN [10] zawiera nazwisko „Prywatne”.

#włączać
int main ()

Char fn [10], LN [10];
char buf [] = "daniyal privater";
sscanf (BUF, „ %s %s”, fn, ln);
printf („Pierwsze imię to: %s \ n nazwisko to: %s \ n”, fn, ln);
powrót 0;

Wyjście tego przykładu pokazano następująco:

Jak widać, wartość tablicy „Daniyal Privater” jest przekonwertowana na dwa ciągi - „Daniyal” i „Prywatna” - przez specyfikator formatu %S.

Wniosek

Ten samouczek dotyczy funkcji SSCANF. Tutaj nauczyliśmy się efektywnie korzystać z funkcji SSCANF do konwersji danych. Funkcja SSCANF pobiera dane wejściowe z bufora i przekształca je w określony typ wyjściowy zdefiniowany przez specyfikator „Format”. Wymaga trzech lub więcej trzech argumentów w zależności od specyfikatora „formatu”. Wartość wejściowa jest pierwszym parametrem, a specyfikator formatu jest drugim. Instruuje funkcję rodzaju konwersji. Trzeci parametr jest opcjonalny. Może to być jeden argument lub lista wielu argumentów w zależności od specyfikatora „formatu”. Zwraca trzy typy wyników - argumenty odbierające, zero lub EOF (koniec pliku). Sscanf jest bardzo prostą i łatwą funkcją C ++, która jest używana do konwersji.