C ++ swprintf () - C ++ standardraamatukogu

Funktsiooni swprintf () kaustas C ++ kasutatakse vormindatud laia stringi kirjutamiseks laia stringi puhvrisse.

Funktsioon swprintf () on määratletud päisefailis.

swprintf () prototüüp

 int swprintf (wchar_t * puhver, size_t size, const wchar_t * formaat,…);

Funktsioon swprintf () kirjutab puhvrisse laia stringi, millele vormingu järgi osutab. Maksimaalselt saab kirjutada märke (suurus-1).

Pärast märkide kirjutamist lisatakse lõpetav null-lai tähemärk.

Lai stringivorming võib sisaldada formaadispetsifikaate, mis algavad% -st, mis asendatakse täiendavate argumentidena funktsioonile swprintf () edastatavate muutujate väärtustega.

swprintf () parameetrid

  • puhver: kursori stringi puhvrisse tulemuse kirjutamiseks.
  • suurus: määrake puhvrisse kirjutatavate märkide maksimaalne arv, mille suurus on 1.
  • formaat: osutaja nulliga lõppenud laiale stringile, mis on kirjutatud stdouti. See koosneb laiadest märkidest koos valikuliste vorminguspetsifikaatoritega, mis algavad%. Vorminguspetsifikaatorid asendatakse vastavate muutujate väärtustega, mis järgivad vormingut.
    Vorminguspetsiifil on järgmised osad:
    • Juhtiv% märk
    • Lipud: valikuliselt üks või mitu lippu, mis muudab konversioonikäitumist.
      • -: vasakpoolne põhjendab tulemust väljal. Vaikimisi on see õigustatud.
      • +: Tulemuse märk kinnitatakse väärtuse algusesse ka positiivsete tulemuste korral.
      • Tühik: kui märki pole, lisatakse tulemuse algusesse tühik.
      • #: Teostatakse teisenduse alternatiivne vorm.
      • 0: Seda kasutatakse täis- ja ujukomaarvuks. Numbrite sisestamiseks tühiku asemel kasutatakse juhtnulle.
    • Laius: valikuline * või täisarv, mida kasutatakse minimaalse laiuse välja määramiseks.
    • Täpsus: valikuline väli, mis koosneb a. millele järgneb * või täisarv või mitte midagi täpsuse täpsustamiseks.
    • Pikkus: valikuline pikkuse muutja, mis määrab argumendi suuruse.
    • Täpsustaja: teisendusvormingu täpsustaja. Saadaval olevad vorminguspetsifikaatorid on järgmised:
    Vorminguspetsifikaatorid
    Vorminguspetsifikaator Kirjeldus
    % Prindib%
    c Kirjutab ühe tähemärgi
    s Kirjutab märgistringi
    d või i Teisendab allkirjastatud täisarv kümnendarvudeks
    o Teisendab allkirjata täisarv kaheksakujuliseks
    X või x Teisendab allkirjastamata täisarv kuueteistkümnendsüsteemis
    u Teisendab allkirjata täisarv kümnendarvudeks
    F või f Teisendab ujukoma numbri kümnendarvuks
    E või e Teisendab ujukomaarv kümnendkoha astendikuks
    A või a Teisendab ujukomaarv kuueteistkümnendsüsteemi eksponendiks
    G või g Teisendab ujukomaarvu kümnend- või kümnendarvulise astendina
    n Tagastab selle kutsega seni kirjutatud märkide arvu funktsioonile. Tulemus kirjutatakse väärtusele, millele argument osutab
    lk Kirjutab kursori määratleva rakenduse määratletud märgijada.

    Seega on vorminguspetsifikaatori üldine vorming:
     % (lipud) (laius) (. täpsus) (pikkus) täpsustaja
  • …: Muud täiendavad argumendid, mis täpsustavad kirjutatavaid andmeid. Need esinevad järjestuses vastavalt vorminguspetsifikaatorile.

swprintf () Tagastusväärtus

  • Edukuse korral tagastab funktsioon swprintf () kirjutatud märkide arvu, välja arvatud lõpetav null-lai tähemärk.
  • Kui ilmnes kodeerimisviga või kui genereeritavate märkide arv oli võrdne või suurem kui suurus, tagastatakse negatiivne väärtus.

Näide: Kuidas funktsioon swprintf () töötab?

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

Programmi käivitamisel kirjutatakse aadressile example.txt järgmine:

 Mõned heebrea tähed א ב ס ד ת

Huvitavad Artiklid...