Funkcia sscanf () v C ++ sa používa na čítanie údajov z medzipamäte reťazca.
prototyp sscanf ()
int sscanf (const char * buffer, const char * formát, …);
sscanf()
Funkcia číta dáta číta dáta z vyrovnávacej pamäte a ukladá hodnoty do príslušných premenných.
Je definované v hlavičkovom súbore.
parametre sscanf ()
buffer
: Ukazovateľ na prázdny znakový reťazec, z ktorého sa majú načítať údaje.format
: Ukazovateľ na prázdny znakový reťazec, ktorý určuje, ako sa má čítať vstup. Skladá sa zo špecifikátorov formátu začínajúcich na%.Reťazec formátu má nasledujúce časti:
Non whitespace characters
okrem% každý z nich spotrebuje jeden identický znak zo vstupného toku. Môže to spôsobiť zlyhanie funkcie, ak sa nasledujúci znak v streame neporovnáva rovnako.Whitespace character
: Všetky nasledujúce znaky medzery sa považujú za jeden znak medzery. Ďalej sa ' n', ' t' a '' považujú za rovnaké.Conversion specification
: Má nasledujúci formát:- Počiatočný znak%, ktorý určuje začiatok
- Voliteľný * znak, ktorý sa nazýva znak potlačujúci priradenie. Ak je tento znak k dispozícii, funkcia fscanf () nepriradí výsledok žiadnemu prijímaciemu argumentu.
- Voliteľné kladné celé číslo, ktoré určuje maximálnu šírku poľa. Určuje maximálny počet znakov, ktoré môže fscanf () spotrebovať pri uskutočňovaní prevodu špecifikovaného v aktuálnej špecifikácii prevodu.
- Voliteľný modifikátor dĺžky určujúci veľkosť prijímacieho argumentu.
- Špecifikátor formátu prevodu.
Špecifikátor formátu Popis % Zhoduje sa s literálnym% c Zhoduje sa s jedným alebo viacerými znakmi. Ak je definovaná šírka, zhoduje sa presne so znakmi šírky. s Zhoda po sebe idúcich znakov bez medzier. Ak je definovaná šírka, zhoduje sa presne so znakmi šírky alebo kým sa nenájde prvý medzera. (sada) Zhoduje sa s neprázdnou sekvenciou znakov z danej sady znakov. Pokiaľ je na začiatku množiny, potom sa všetky znaky, ktoré nie sú v množine, zhodujú. d Zhoduje sa s desatinným celým číslom. i Zhoduje sa s celým číslom. o Zhoduje sa s nepodpísaným osmičkovým celým číslom. X alebo x Zhoduje sa s hexadecimálnym celým číslom bez znamienka. u Zhoduje sa s desatinným celým číslom bez znamienka. A alebo a, E alebo e, F alebo f, G alebo g Zhoduje sa s plávajúcou desatinnou čiarkou. n Vráti počet doteraz prečítaných znakov. p Zhoduje sa s postupnosťou znakov definovaných implementáciou, ktorá definuje ukazovateľ.
%(*)(width)(length)specifier
- …: Ďalšie ďalšie argumenty pre príjem údajov. Vyskytujú sa v poradí podľa špecifikátora formátu.
sscanf () Vrátiť hodnotu
- Ak je úspešná,
sscanf()
funkcia vráti počet úspešne priradených prijímajúcich argumentov. - Ak dôjde k zlyhaniu párovania pred priradením prvého prijímacieho argumentu, vráti nulu.
- Ak dôjde k zlyhaniu vstupu pred priradením prvého prijímacieho argumentu, vráti sa EOF.
Príklad: Ako funguje funkcia sscanf ()
#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; )
Po spustení programu bude možný výstup:
Meno: Dennis Priezvisko: Ritchie