C ++ swscanf () - C ++ standardna knjižnica

Funkcija swscanf () na C ++ čita široki znak iz širokog međuspremnika niza.

Funkcija swscanf () definirana je u zaglavnoj datoteci.

swscanf () prototip

 int swscanf (const wchar_t * međuspremnik, const wchar_t * format,…);

Funkcija swscanf () čita podatke iz međuspremnika i pohranjuje vrijednosti u odgovarajuće varijable.

swscanf () parametri

  • međuspremnik: pokazivač na široki međuspremnik niza za čitanje podataka.
  • format: pokazivač na niz znakova završenih nulom koji specificira način čitanja unosa. Sastoji se od specifikatora formata koji počinju s%.
    Niz formatiranja ima sljedeće dijelove:
    • Znakovi koji nisu razmaci, osim% koji svaki troši po jedan identičan znak iz ulaznog toka. To može uzrokovati neuspjeh funkcije ako se sljedeći znak u streamu ne usporedi.
    • Razmak: Znakovi razmaka uzastopno tretiraju se kao jedan razmak. Nadalje, ' n', ' t' i '' smatraju se istim.
    • Specifikacija pretvorbe: Slijedi sljedeći format:
      • Inicijalni% znak koji specificira početak
      • Izborni * koji se naziva znak za suzbijanje dodjele. Ako je prisutan ovaj znak, swscanf () ne dodjeljuje rezultat niti jednom argumentu primanja.
      • Izborni pozitivni cijeli broj koji specificira maksimalnu širinu polja. Određuje maksimalan broj znakova koji swscanf () smije unijeti kada vrši pretvorbu navedenu u trenutnoj specifikaciji pretvorbe.
      • Izborni modifikator duljine koji specificira veličinu argumenta koji prima.
      • Specifikator formata pretvorbe.
    Specifikatori formata
    Specifikator formata Opis
    % Podudara se s doslovnim%
    c Podudara se s jednim znakom ili više znakova. Ako je širina definirana, točno se podudara sa znakovima širine.
    s Podudara se s uzastopnim znakovima koji nisu razmaci. Ako je širina definirana, točno se podudara sa znakovima širine ili dok se ne pronađe prvi razmak.
    (postavljeno) Podudara se s praznim nizom znakova iz zadanog skupa znakova. Ako je prisutan na početku skupa, tada se podudaraju svi znakovi koji nisu u skupu.
    d Podudara se s decimalnim cijelim brojem.
    ja Podudara se s cijelim brojem.
    o Podudara se s nepotpisanim osminski cijelim brojem.
    X ili x Podudara se s nepotpisanim heksadecimalnim cijelim brojem.
    u Podudara se s nepotpisanim decimalnim cijelim brojem.
    A ili a, E ili e, F ili f, G ili g Podudara se s brojem s pomičnom zarezom.
    n Vraća broj do sada pročitanih znakova.
    str Podudara se s implementacijom definiranim slijedom znakova koji definira pokazivač.

    Dakle, općeniti format specifikatora formata je:
     Specifikator% (*) (width) (length)
  • …: Ostali dodatni argumenti za primanje podataka. Javljaju se u slijedu prema specifikatoru formata.

swscanf () Povratna vrijednost

  • Funkcija swscanf () vraća broj uspješno dodijeljenih argumenata za primanje.
  • Ako se neuspjeh dogodi prije nego što je dodijeljen prvi argument primanja, vraća se EOF .

Primjer: Kako funkcionira funkcija swscanf ()?

 #include #include int main() ( wchar_t buffer(100) = L"Theta u03b8"; wchar_t symbol, desc(10); setlocale(LC_ALL, "en_US.UTF-8"); swscanf(buffer, L"%ls %lc", desc, &symbol); wprintf(L"%lc is %ls", symbol, desc); return 0; )

Kada pokrenete program, mogući izlaz bit će:

 θ je Theta

Zanimljivi članci...