C ++ swscanf () - Biblioteca standard C ++

Funcția swscanf () din C ++ citește caracterul larg din bufferul cu șiruri largi.

Funcția swscanf () este definită în fișierul antet.

swscanf () prototip

 int swscanf (const wchar_t * buffer, const wchar_t * format, …);

Funcția swscanf () citește datele din buffer și stochează valorile în variabilele respective.

swscanf () Parametri

  • buffer: Pointer către bufferul cu șir larg pentru a citi datele din.
  • format: Pointer către un șir de caractere cu terminare nulă care specifică modul de citire a intrării. Se compune din specificatori de format care încep cu%.
    Șirul de format are următoarele părți:
    • Caracterele care nu sunt spații albe, cu excepția% din care fiecare consumă un caracter identic din fluxul de intrare. Poate provoca eșecul funcției dacă următorul caracter din flux nu compară egal.
    • Caracterul spațiului alb: Toate caracterele spațiului alb consecutiv sunt tratate ca un singur caracter spațiu alb. Mai mult, ' n', ' t' și '' sunt considerate aceleași.
    • Specificații de conversie: urmează următorul format:
      • % Caracter inițial care specifică începutul
      • Un caracter opțional * numit caracter de suprimare a atribuirilor. Dacă acest caracter este prezent, swscanf () nu atribuie rezultatul niciunui argument primitor.
      • Un număr întreg pozitiv opțional care specifică lățimea maximă a câmpului. Specifică numărul maxim de caractere pe care swscanf () i se permite să le consume atunci când se efectuează conversia specificată de specificația curentă de conversie.
      • Un modificator opțional de lungime care specifică dimensiunea argumentului de primire.
      • Un specificator de format de conversie.
    Specificatori de format
    Specificator de format Descriere
    % Se potrivește cu% literal
    c Potriveste un singur caracter sau mai multe caractere. Dacă lățimea este definită, se potrivește exact cu caractere de lățime.
    s Potrivește caractere consecutive fără spațiu alb. Dacă lățimea este definită, se potrivește exact cu lățimea caracterelor sau până când se găsește primul spațiu alb.
    (a stabilit) Potrivește o secvență de caractere ne goală din setul de caractere dat. Dacă este prezent la începutul setului, atunci toate caracterele care nu sunt în set sunt potrivite.
    d Se potrivește cu un număr întreg zecimal.
    eu Se potrivește cu un număr întreg.
    o Se potrivește cu un întreg octal nesemnat.
    X sau x Se potrivește cu un număr întreg hexazecimal nesemnat.
    tu Se potrivește cu un număr zecimal nesemnat.
    A sau a, E sau e, F sau f, G sau g Se potrivește cu un număr în virgulă mobilă.
    n Returnează numărul de caractere citite până acum.
    p Se potrivește cu o secvență de caractere definită de implementare care definește un pointer.

    Deci, formatul general al specificatorului de format este:
     % (*) (lățime) (lungime) specificator
  • …: Alte argumente suplimentare pentru primirea datelor. Acestea apar într-o secvență conform specificatorului de format.

swscanf () Valoare returnată

  • Funcția swscanf () returnează numărul de argumente de primire atribuite cu succes.
  • Dacă eșecul apare înainte ca primul argument de primire să fie atribuit, EOF este returnat.

Exemplu: Cum funcționează funcția 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; )

Când rulați programul, o posibilă ieșire va fi:

 θ este Theta

Articole interesante...