Funkcia wscanf () v C ++ číta široký znak zo štandardného vstupu.
Funkcia wscanf () je definovaná v hlavičkovom súbore.
prototyp wscanf ()
int wscanf (formát const char *, …);
Funkcia wscanf () načíta údaje zo štandardného vstupu a uloží hodnoty do príslušných premenných.
Parametre wscanf ()
- formát: 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:- Znaky bez medzier okrem%, pričom 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.
- Znak medzery: Všetky nasledujúce znaky medzery sa považujú za jeden znak medzery. Ďalej sa ' n', ' t' a '' považujú za rovnaké.
- Špecifikácia prevodu: 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 wscanf () 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é smie wscanf () 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ľ.
Všeobecný formát špecifikátora formátu je teda:špecifikátor% (*) (šírka) (dĺžka)
- …: Ďalšie ďalšie argumenty pre príjem údajov. Vyskytujú sa v poradí podľa špecifikátora formátu.
wscanf () Vrátiť hodnotu
- Funkcia wscanf () vracia počet úspešne priradených prijímajúcich argumentov.
- Ak dôjde k zlyhaniu pred priradením prvého prijímacieho argumentu, vráti sa EOF.
Príklad: Ako funguje funkcia wscanf ()?
#include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t ch; setlocale(LC_ALL, "en_US.UTF-8"); wprintf(L"Enter a wide character: "); wscanf(L"%lc",&ch); if (iswalnum(ch)) wcout << ch << L" is alphanumeric." << endl; else wcout << ch << L" is not alphanumeric." << endl; return 0; )
Po spustení programu bude možný výstup:
Zadajte široký znak: ∭ ∭ nie je alfanumerický.