C ++ vprintf () - C ++ standardraamatukogu

Funktsiooni vprintf () kaustas C ++ kasutatakse vormindatud stringi stdouti kirjutamiseks.

vprintf () prototüüp

 int vprintf (const char * formaat, va_list vlist);

vprintf()Funktsioon kirjutab stringi osutas poolt formaat standardväljundit. Stringi formaat võib sisaldada vorminguspetsifikaate, mis algavad% -st, mis asendatakse loendi vlistina edastatud muutujate väärtustega.

See on määratletud päisefailis.

vprintf () parameetrid

  • formaat: kursor nulliga lõpetatud stringi jaoks, mis kirjutatakse failivoogu. See koosneb märkidest koos valikuliste vorminguspetsifikaatoritega, mis algavad% -ga.

    Vorminguspetsifikaatorid asendatakse vastavate muutujate väärtustega, mis järgivad vormindusstringi.

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

  • vlist: printimiseks vajalikke andmeid sisaldavate argumentide loend.

vprintf () Tagastusväärtus

Kui see õnnestub, vprintf()tagastab funktsioon kirjutatud märkide arvu. Ebaõnnestumisel tagastab negatiivse väärtuse.

Näide: kuidas funktsioon vprintf () töötab

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

Programmi käivitamisel on väljund järgmine:

Minu nimi on Jim. Olen 13-aastane ja elan Cardiffis.

Huvitavad Artiklid...