C ++ vprintf () - C ++ - vakiokirjasto

C ++: n vprintf () -funktiota käytetään muotoilun merkkijonon kirjoittamiseen vakiotilaan.

vprintf () -prototyyppi

 int vprintf (const char * -muoto, va_list vlist);

vprintf()Toiminto kirjoittaa merkkijonoa osoitteen sivulle muotoon vakiotulosteeseen. Merkkijonomuoto voi sisältää muotomäärittimet, jotka alkavat%: lla ja jotka korvataan luettelomuodona siirrettävien muuttujien arvoilla.

Se määritetään otsikkotiedostossa.

vprintf () -parametrit

  • muoto: Osoitin nollan päättyneelle merkkijonolle, joka kirjoitetaan tiedostovirtaan. Se koostuu merkeistä ja valinnaisista muotoilun määrittelijöistä, jotka alkavat%: lla.

    Formaatin määrittelijät korvataan vastaavien muuttujien arvoilla, jotka seuraavat muotomerkkijonoa.

    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:
      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: %(flags)(width)(.precision)(length)specifier

  • vlist: Luettelo argumenteista, jotka sisältävät tulostettavat tiedot.

vprintf () Palautusarvo

Jos se onnistuu, vprintf()funktio palauttaa kirjoitettujen merkkien määrän. Epäonnistumisen yhteydessä se palauttaa negatiivisen arvon.

Esimerkki: Kuinka vprintf () -toiminto toimii

 #include #include void write(const char *fmt,… ) ( va_list args; va_start(args, fmt); vprintf(fmt, args); va_end(args); ) int main () ( char name(50) = "Jim"; char address(50) = "Cardiff"; int age = 13; write("My name is %s. I am %d years old and I live in %s.", name, age, address); return 0; )

Kun suoritat ohjelmaa, tulos on:

Nimeni on Jim. Olen 13-vuotias ja asun Cardiffissa.

Mielenkiintoisia artikkeleita...