Funksjonen sscanf () i C ++ brukes til å lese dataene fra strengbuffer.
sscanf () prototype
int sscanf (const char * buffer, const char * format,…);
Den sscanf()
Funksjonen leser data leser dataene fra bufferen og lagrer verdiene i de respektive variablene.
Det er definert i topptekstfilen.
sscanf () Parametere
buffer
: Peker til en null-avsluttet tegnstreng å lese dataene fra.format
: Peker til en null-avsluttet tegnstreng som spesifiserer hvordan du skal lese inngangen. Den består av formatspesifikatorer som begynner med%.Formatstrengen har følgende deler:
Non whitespace characters
unntatt% som hver bruker ett identisk tegn fra inngangsstrømmen. Det kan føre til at funksjonen mislykkes hvis neste tegn på strømmen ikke sammenligner like.Whitespace character
: Alle påfølgende tegn i mellomrom behandles som enkelt tegn i mellomrom. Videre anses ' n', ' t' og '' som de samme.Conversion specification
: Den følger følgende format:- Innledende% tegn som spesifiserer begynnelsen
- En valgfri * kalt oppdragsdempende karakter. Hvis dette tegnet er tilstede, tildeler fscanf () ikke resultatet til noe mottaksargument.
- Et valgfritt positivt heltall som spesifiserer maksimal feltbredde. Den spesifiserer det maksimale antall tegn som fscanf () har lov til å konsumere når konverteringen er spesifisert av gjeldende konverteringsspesifikasjon.
- En valgfri lengdemodifikator som angir størrelsen på mottaksargumentet.
- En konverteringsformatspesifikator.
Format Spesifikator Beskrivelse % Matcher bokstavelig% c Matcher et enkelt tegn eller flere tegn. Hvis bredde er definert, samsvarer den nøyaktig med tegn i bredden. s Matcher påfølgende ikke-mellomromstegn. Hvis bredde er definert, samsvarer den nøyaktig med tegn i bredden eller til første hvite mellomrom er funnet. (sett) Matcher en ikke-tom sekvens av tegn fra det gitte settet med tegn. Hvis er tilstede i begynnelsen av settet, samsvarer alle tegnene som ikke er i settet. d Matcher et desimaltall. Jeg Matcher et heltall. o Matcher et usignert oktalt heltall. X eller x Matcher et usignert heksadesimalt heltall. u Matcher et usignert desimaltall. A eller a, E eller e, F eller f, G eller g Matcher et flytende nummer. n Returnerer antall tegn som er lest hittil. s Matcher en implementeringsdefinert tegnsekvens som definerer en peker.
%(*)(width)(length)specifier
- …: Andre tilleggsargumenter for mottak av data. De forekommer i en sekvens i henhold til formatet.
sscanf () Returverdi
- Hvis vellykket,
sscanf()
returnerer funksjonen antall mottaksargumenter som er tilordnet. - Hvis en samsvarende feil oppstår før det første mottaksargumentet ble tildelt, returnerer null.
- Hvis inngangsfeil oppstår før det første mottaksargumentet ble tildelt, returneres EOF.
Eksempel: Hvordan funksjonen sscanf () fungerer
#include int main () ( char fname(50), lname(50); char buffer() = "Dennis Ritchie"; sscanf(buffer, "%s %s", fname, lname); printf("First name : %s Last name : %s", fname, lname); return 0; )
Når du kjører programmet, vil en mulig utgang være:
Fornavn: Dennis Etternavn: Ritchie