SSCANF C ++

SSCANF C ++

C ++ er et raskt og et av de eldste programmeringsspråkene som er ideelle for utvikling av operativsystemer. Det gir høy ytelse og god hastighet, og dekker forskjellige typer applikasjoner. Det gir en veldig avansert syntaks, noe som gjør seg kompleks og vanskelig å lære. Den innebygde funksjonaliteten er imidlertid ganske nyttig for å lage noen form for applikasjon. Å konvertere tall fra strenger eller strenger fra tall er en ganske forvirrende oppgave. Derfor trenger vi noen funksjoner som kan brukes med konvertering av NUM til STR eller STR til NUM. Her lærer vi å bruke SSCANF -funksjonen for å konvertere en inngang til en spesifisert type utgang.

SSCANF C ++ -funksjonen

SSCANF -funksjonen er en av de mest brukte C ++ -funksjonene for å konvertere tall til strenger. Det tar en inngang fra brukeren eller bufferen, konverterer strengen til en int og lagrer den i en spesifisert variabel. Med enkle ord tolker den inngangen i henhold til formatet og lagrer den resulterende verdien på et bestemt sted. Hvis utfører en lignende funksjon som SCANF, men leser inngangen fra bufferen i stedet for standardinngangen.

Se følgende komplette syntaks for SSCANF -funksjonen levert av C ++ programmeringsspråket:

SSCANF -funksjonen tar minimum to inngangsargumenter og en liste over valgfrie argumenter. Det valgfrie argumentet betyr at de kan hoppes over hvis ikke nødvendig. Den leser dataene fra "input" -bufferen i "format" -formatet til stedet som er spesifisert av "argument_listen". "Input" -parameteren eller argumentet representerer strengen til funksjonen som brukes til å hente dataene. "Format" -parameteren representerer formatstrengen som spesifiserer hvordan du leser inngangen fra en buffer.

Formatet på "format" -spesifikatoren er som følger:

Det starter med et % tegn etterfulgt av * som er en undertrykkelseskarakter. Bredde- og lengdefeltene er valgfrie, og de kan hoppes over. Hvis gitt, forbruker SSCANF -funksjonen bare det maksimale antall tegn som er spesifisert av "bredden". "Lengde" -feltet definerer mottakelsesargumentstørrelsen. Spesifikasjonen_navnet har spesifikasjonskarakteren (C, S, D, etc.) i å spesifisere konverteringstypen. "Argument_listen" kan inneholde minst ett ekstra argument. Det avhenger av "format" -strengen.

SSCANF -funksjonen returnerer de tre typene resultater - de vellykkede tildelte mottar argumenter i tilfelle en vellykket funksjon, null i tilfelle matchende svikt og EOF i tilfelle inngangssvikt. La oss nå utforske noen nyttige eksempler for å lære bruken av SSCANF -funksjonen til C++.

Eksempel 1:

Dette er et veldig enkelt og grunnleggende eksempel på SSCANF -funksjonen. En streng er tilordnet en variabel som sendes til SSCANF -funksjonen. “Int a” er definert for å holde resultatet av SSCANF -funksjonen. Se følgende gitt kode og forstå hver kodelinje.

Etter å ha inkludert Iostream Header -filen, initieres Main () -metoden. "S = 104785" -strengen initialiseres og sendes til SSCANF -funksjonen SSCANF (S, “%D”, & A). %D representerer konverteringsformatet. Og "A" er gitt for å holde resultatet.

#inkludere
ved hjelp av navneområdet STD;
int main ()

const char* s = "104785";
int a;
sscanf (s, "%d", & a);
cout << "\nThe converted value of "<retur 0;

Utgangen kan sees her. "104785" -strengen blir konvertert til desimalt "104785".

Eksempel 2:

I dette eksemplet leste vi float og dobbel float ved hjelp av samme SSCANF -funksjon. En streng er tilordnet en variabel som sendes til SSCANF -funksjonen for formatkonvertering. Se følgende kode for å forstå funksjonen til SSCANF med float og doble float -tall.

Merk at i forrige eksempel brukes %d som en "formatspesifikasjon". I dette eksemplet brukes %F og %LF. %F brukes til å konvertere inngangen til et flottørnummer og %LF brukes til å konvertere nummeret til et dobbelt floatnummer.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

const char* s = "104785.54 ";
float a;
sscanf (s, "%f", & a);
printf ("\ n the float -verdien er: %f", a);
dobbel b;
sscanf (s, "%lf", & b);
printf ("\ n Double Float Value is: %f", b);
retur 0;

Sjekk utdataene gitt i følgende:

Merk at utgangen etter desimalet er forskjellig for float og for dobbeltfloat. Dette er fordi flottøren gir det nærmeste omtrentlig resultatet og det er praktisk, raskt og presist. Mens den doble flottøren gir det eksakte beregnede resultatet, da det handler om pålitelighet og nøyaktighet. Imidlertid er det litt tregere enn flyte.

Eksempel 3:

La oss spille med noen matrisedata. I dette eksemplet er inngangen gitt i form av en matrise og konverteres til enkle strenger. Spesifikatoren for %S -format brukes til å konvertere inngangen til en streng. Så vi bruker %S som en formatspesifikasjon her. To tomme matriser er definert for å holde utgangen - FN [10] og LN [10]. Følgende er koden.

Her er et navn som består av fornavn og etternavn tilordnet en matrise BUF [] og sendes til SSCANF -funksjonen, og konverterer hvert element i matrisen til en streng. Når du utfører kodeprogrammet, vil du legge merke til hvert element i matrisen separat. Siden det bare er to utgangsfelt definert (FN og LN), vises de to matriseelementene av programmet. FN [10] -arrayen holder fornavnet “Daniyal”. Og LN [10] -arrayen holder etternavnet “Privater”.

#inkludere
int main ()

char fn [10], ln [10];
char buf [] = "daniyal privater";
sscanf (buf, " %s %s", fn, ln);
printf ("fornavnet er: %s \ n Det etternavnet er: %s \ n", fn, ln);
retur 0;

Utgangen til dette eksemplet er vist på følgende:

Som du kan se, blir arrayverdien “Daniyal Privater” konvertert til to strenger - “Daniyal” og “Privater” - av %S -formatspesifikatoren.

Konklusjon

Denne opplæringen handler om SSCANF -funksjonen. Her lærte vi hvordan vi bruker SSCANF -funksjonen effektivt for å konvertere dataene. SSCANF -funksjonen tar inngangen fra bufferen og konverterer den til den spesifiserte utgangstypen som er definert av “Format” -spesifikatoren. Det tar tre eller flere tre argumenter avhengig av "format" -spesifikasjonen. Inngangsverdien er den første parameteren, og formatspesifikasjonen er den andre. Den instruerer funksjonen til typen konvertering. Den tredje parameteren er valgfri. Det kan være ett argument eller en liste over flere argumenter avhengig av "format" -spesifikatoren. Den returnerer de tre typene resultater - mottakende argumenter, null eller eof (slutten av filen). SSCANF er en veldig enkel og enkel funksjon av C ++ som brukes til konverteringer.