Funkcija vfwscanf () C ++ naudojama plačių simbolių eilutei nuskaityti iš plataus eilučių buferio.
Funkcija vfwscanf () yra apibrėžta antraštės faile.
vswscanf () prototipas
int vswscanf (const wchar_t * buferis, const wchar_t * formatas, va_list vlist);
Funkcija „vfwscanf ()“ nuskaito duomenis iš plataus eilutės buferio buferio ir išsaugo reikšmes atitinkamose vietose, kaip apibrėžta „vlist“.
vswscanf () parametrai
- buferis: žymeklis nuliui nutrauktoje plačioje eilutėje, kad būtų galima nuskaityti duomenis.
- formatas: žymeklis nulinės galinės plačios simbolių eilutės, nurodančios, kaip skaityti įvestį. Jį sudaro formato specifikatoriai, prasidedantys%.
Formato eilutę sudaro šios dalys:- Ne tarpų simboliai, išskyrus%, kurių kiekvienas sunaudoja vieną identišką simbolį iš įvesties srauto. Tai gali sukelti funkcijos gedimą, jei kitas srauto simbolis nėra lygus.
- Baltosios erdvės simbolis: visi vienas po kito einantys simboliai yra laikomi atskirais tarpais. Toliau ' n', ' t' ir '' laikomos vienodomis.
- Konversijos specifikacija: ji pateikiama tokiu formatu:
- Pradinis% simbolis, nurodantis pradžią
- Pasirenkamas * vadinamas priskyrimą slopinančiu simboliu. Jei šis simbolis yra, „vfwscanf“ () nepriskiria rezultato jokiam priėmimo argumentui.
- Pasirenkamas teigiamas sveikasis skaičius, nurodantis maksimalų lauko plotį. Jis nurodo maksimalų simbolių skaičių, kurį „vfwscanf“ () leidžiama sunaudoti atliekant konversiją, nurodytą dabartinėje konversijos specifikacijoje.
- Pasirenkamas ilgio modifikatorius, nurodantis gaunamo argumento dydį.
- Konversijos formato specifikatorius.
Formato specifikatorius apibūdinimas % Atitinka pažodinį% c Atitinka vieną ar kelis simbolius. Jei apibrėžtas plotis, tiksliai atitinka pločio simbolius. s Atitinka vienas po kito einančius simbolius be tarpų. Jei plotis yra apibrėžtas, tiksliai atitinka pločio simbolius arba tol, kol bus rastas pirmasis tarpas. (rinkinys) Atitinka ne tuščią simbolių seką iš pateikto simbolių rinkinio. Jei aibės pradžioje yra ^, tada visi nenurodyti simboliai sutampa. d Atitinka dešimtainį skaičių. i Atitinka sveiką skaičių. o Atitinka nepasirašytą aštuonetą. X arba x Atitinka nepasirašytą šešioliktainį sveikąjį skaičių. u Atitinka nepasirašytą dešimtainį skaičių. A arba a, E arba e, F arba f, G arba g Atitinka slankiojo kablelio skaičių. n Grąžina iki šiol perskaitytų simbolių skaičių. p Atitinka įgyvendinimo apibrėžtą simbolių seką, apibrėžiančią žymeklį.
Taigi bendras formato specifikatoriaus formatas yra:% (*) (plotis) (ilgis) specifikatorius
- vlist: Įvesties gavimo argumentų sąrašas.
vswscanf () Grąžinimo vertė
- Jei pavyks, funkcija vfwscanf () grąžins sėkmingai perskaitytų argumentų skaičių.
- Sugedus, EOF grąžinamas.
Pavyzdys: Kaip veikia vswscanf () funkcija?
#include #include #include void read( const wchar_t* buffer, const wchar_t* format,… ) ( va_list args; va_start (args, format); vswscanf (buffer, format, args); va_end (args); ) int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t symbol() = L"u0fd7u00c6u20b9u2127u17d8"; wchar_t str(20); read(symbol, L"%ls", str); wprintf(L"Random Symbols"); for (int i=0; i
When you run the program, a possible output will be:
Random Symbols ࿗ Æ ₹ ℧ ៘