C ++ sprintf () - C ++ standardraamatukogu

Funktsiooni Sprintf () kaustas C ++ kasutatakse vormindatud stringi kirjutamiseks märgistringi puhvrisse.

sprintf () prototüüp

 int sprintf (char * puhver, const char * formaat,…);

sprintf()Funktsioon kirjutab stringi osutas poolt formaat puhvri. Stringi formaat võib sisaldada formaadispetsifikaate, mis algavad% -ga ja mis asendatakse sprintf()funktsiooniga täiendavate argumentidena edastatavate muutujate väärtustega .

See on määratletud päisefailis.

sprintf () parameetrid

  • puhver: kursori stringi puhvrisse tulemuse kirjutamiseks.
  • 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

  • …: Muud täiendavad argumendid, mis täpsustavad prinditavaid andmeid. Need esinevad järjestuses vastavalt vorminguspetsifikaatorile.

sprintf () Tagastusväärtus

  • Kui see õnnestub, sprintf()tagastab funktsioon märkide arvu, mis oleks kirjutatud piisavalt suure puhvri jaoks, välja arvatud lõpetav nullmärk.
  • Rikke korral tagastab negatiivse väärtuse.

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

 #include #include using namespace std; int main() ( char buffer(100); int retVal; char name() = "Max"; int age = 23; retVal = sprintf(buffer, "Hi, I am %s and I am %d years old", name, age); cout << buffer << endl; cout << "Number of characters written = " << retVal << endl; return 0; )

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

 Tere, olen Max ja olen 23-aastane kirjutatud märkide arv = 34

Huvitavad Artiklid...