C ++ swprintf () - C ++ -kirjasto

C ++: n swprintf () -funktiota käytetään muotoilun leveän merkkijonon kirjoittamiseen laajaan merkkijonopuskuriin.

Funktio swprintf () määritetään otsikkotiedostossa.

swprintf () -prototyyppi

 int swprintf (wchar_t * puskuri, size_t koko, const wchar_t * muoto,…);

Funktio swprintf () kirjoittaa muodon osoittaman leveän merkkijonon puskuriin. Kirjoitettavien merkkien enimmäismäärä on (koko-1).

Kun merkit on kirjoitettu, lopullinen tyhjä leveä merkki lisätään.

Laaja merkkijono -muoto voi sisältää% -alkuisia formaattimäärityksiä, jotka korvataan swprintf () -funktiolle välitettävien muuttujien arvoilla lisäargumentteina.

swprintf () -parametrit

  • puskuri: Osoitin merkkijonopuskuriin kirjoittamaan tuloksen.
  • size: Määritä puskuriin kirjoitettavien merkkien enimmäismäärä, joka on koko-1.
  • muoto: Osoitin nollan päättyneelle leveälle merkkijonolle, joka kirjoitetaan stdout-tiedostoon. Se koostuu leveistä merkeistä sekä valinnaisista muotomäärittimistä, jotka alkavat prosentilla. Formaatin määrittelijät korvataan vastaavien muuttujien arvoilla, jotka seuraavat muotoa.
    Formaatin määrittelijässä on seuraavat osat:
    • Johtava% -merkki
    • Liput: Valinnainen yksi tai useampi lippu, joka muuttaa konversiokäyttäytymistä.
      • -: Vasen tasaa tuloksen kentässä. Oletuksena se on oikein perusteltu.
      • +: Tuloksen merkki liitetään arvon alkuun, myös positiivisten tulosten saamiseksi.
      • Välilyönti: Jos merkkiä ei ole, tuloksen alkuun kiinnitetään välilyönti.
      • #: Vaihtoehtoinen muunnos suoritetaan.
      • 0: Sitä käytetään kokonaislukuun ja liukulukuihin. Numeroita käytetään välilyöntien sijasta etunollia.
    • Leveys: Valinnainen * tai kokonaislukuarvo, jota käytetään minimileveyskentän määrittämiseen.
    • Tarkkuus: Valinnainen kenttä, joka koostuu a. jota seuraa * tai kokonaisluku tai ei mitään tarkkuuden määrittämiseksi.
    • Pituus: Valinnainen pituuden muuttaja, joka määrittää argumentin koon.
    • Määritin: Muunnosmuodon määrittelijä. Saatavilla olevat muotomäärittimet ovat seuraavat:
    Muotomäärittimet
    Formaatin määrittelijä Kuvaus
    % Tulosteet%
    c Kirjoittaa yhden merkin
    s Kirjoittaa merkkijonon
    d tai i Muuntaa allekirjoitetun kokonaisluvun desimaaliedustukseksi
    o Muuntaa allekirjoittamattoman kokonaisluvun oktaaliedustukseksi
    X tai x Muuntaa allekirjoittamattoman kokonaisluvun heksadesimaaliluvuksi
    u Muuntaa allekirjoittamattoman kokonaisluvun desimaaliedustukseksi
    F tai f Muuntaa liukuluvun desimaaliluvuksi
    E tai e Muuntaa liukuluvun desimaalilausekkeeksi
    A tai a Muuntaa liukuluvun luvun heksadesimaalilausekkeeksi
    G tai g Muuntaa liukuluvun desimaalin tai desimaalin eksponenttimerkinnäksi
    n Palauttaa tämän kutsun tähän mennessä kirjoittamien merkkien määrän funktioon. Tulos kirjoitetaan argumentin osoittamaan arvoon
    s Kirjoittaa toteutuksessa määritetyn merkkijonon, joka määrittelee osoittimen.

    Joten muodon määrittelijän yleinen muoto on:
     % (liput) (leveys) (. tarkkuus) (pituus) määrittelijä
  • …: Muut lisäväitteet, jotka määrittelevät kirjoitettavat tiedot. Ne esiintyvät järjestyksessä muodon määrittelijän mukaan.

swprintf () Palautusarvo

  • Menestyksen jälkeen funktio swprintf () palauttaa kirjoitettujen merkkien lukumäärän ilman lopetettavaa tyhjää leveää merkkiä.
  • Jos tapahtui koodausvirhe tai jos luotavien merkkien lukumäärä oli yhtä suuri tai suurempi kuin koko, negatiivinen arvo palautetaan.

Esimerkki: Kuinka funktio swprintf () toimii?

 #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; )

Kun suoritat ohjelman, seuraava kirjoitetaan esimerkkiin.txt:

 Joitakin heprealaisia ​​kirjaimia א ב ס ד ת

Mielenkiintoisia artikkeleita...