C ++ swprintf () - Standardna knjižnica C ++

Funkcija swprintf () v jeziku C ++ se uporablja za zapis formatiranega širokega niza v široki medpomnilnik nizov.

Funkcija swprintf () je definirana v datoteki glave.

prototip swprintf ()

 int swprintf (vmesni pomnilnik wchar_t *, velikost_t, format wchar_t *,…);

Funkcija swprintf () v medpomnilnik zapiše širok niz, na katerega kaže format. Največje dovoljeno število znakov je (velikost-1).

Ko so znaki napisani, se doda zaključni ničelni znak.

Oblika širokega niza lahko vsebuje specifikatorje formatov, ki se začnejo z% in jih nadomestijo vrednosti spremenljivk, ki se kot dodatne argumente posredujejo v funkcijo swprintf ().

parametri swprintf ()

  • medpomnilnik: Kazalec na vmesni pomnilnik niza za zapis rezultata.
  • velikost: podajte največje število znakov, ki jih želite zapisati v medpomnilnik, ki je velikost-1.
  • format: kazalec na ničelno zaključen širok niz, ki je zapisan v stdout. Sestavljen je iz širokih znakov in izbirnih specifikatorjev oblike, ki se začnejo z%. Specifikatorji oblike se nadomestijo z vrednostmi ustreznih spremenljivk, ki sledijo formatu.
    Specifikator oblike ima naslednje dele:
    • Vodilni znak%
    • Zastave: neobvezna ena ali več zastavic, ki spreminjajo vedenje pretvorbe.
      • -: Levo utemeljite rezultat znotraj polja. Privzeto je upravičeno.
      • +: Znak rezultata je pritrjen na začetek vrednosti, tudi za pozitivne rezultate.
      • Presledek: Če ni nobenega znaka, je presledek pritrjen na začetek rezultata.
      • #: Izvede se druga oblika pretvorbe.
      • 0: Uporablja se za celo število in število s plavajočo vejico. Za zapolnitev številk namesto presledka se uporabljajo vodilne ničle.
    • Širina: neobvezna vrednost * ali celo število, ki se uporablja za določanje polja najmanjše širine.
    • Natančnost: neobvezno polje, sestavljeno iz a. čemur sledi * ali celo število ali nič, kar določa natančnost.
    • Dolžina: neobvezni modifikator dolžine, ki določa velikost argumenta.
    • Specifikator: Specifikator pretvorbenega formata. Razpoložljivi opisniki oblike so naslednji:
    Specifikatorji formatov
    Format Specifier Opis
    % Odtisov%
    c Napiše en sam znak
    s Zapiše niz znakov
    d ali i Pretvori podpisano celo število v decimalno predstavitev
    o Pretvori nepodpisano celo število v osmiško predstavitev
    X ali x Pretvori nešteto celo število v šestnajstiško predstavitev
    u Pretvori nešteto celo število v decimalno predstavitev
    F ali f Pretvori število s plavajočo vejico v decimalno predstavitev
    E ali e Pretvori število s plavajočo vejico v zapis decimalnega eksponenta
    A ali a Pretvori število s plavajočo vejico v šestnajstiški eksponent
    G ali g Pretvori število s plavajočo vejico v decimalni ali decimalni eksponentni zapis
    n Vrne število doslej napisanih znakov s tem klicem funkcije. Rezultat se zapiše v vrednost, na katero opozarja argument
    str Zapiše zaporedje znakov, opredeljeno z izvedbo, ki definira kazalec.

    Tako je splošna oblika specifikatorja oblike:
     Specifikator% (zastavice) (širina) (. natančnost) (dolžina)
  • …: Drugi dodatni argumenti, ki določajo podatke, ki jih je treba zapisati. Pojavljajo se v zaporedju glede na specifikator formata.

swprintf () Vrnjena vrednost

  • Po uspehu funkcija swprintf () vrne število zapisanih znakov, razen končnega ničelnega znaka.
  • Če je prišlo do napake kodiranja ali če je bilo število ustvarjenih znakov enako ali večje od velikosti, se vrne negativna vrednost.

Primer: Kako deluje funkcija swprintf ()?

 #include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )

Ko zaženete program, bo v example.txt zapisano naslednje:

 Nekaj ​​hebrejskih črk א ב ס ד ת

Zanimive Članki...